open
(程序语言)
编辑
锁定
讨论
上传视频
open是多种语言、环境的一种函数,LINUX中open函数作用:打开和创建文件。PB程序语言中open功能:打开窗口。
中文名
open函数
外文名
open
应 用
PB程序,C语言类 别
程序函数
系 统
LINUX
作 用
打开和创建文件
open程序语言
编辑
open系统调用函数
作用:打开和创建文件。
简述:open是UNIX系统(包括LINUX、Mac等)的系统调用函数,区别于C语言库函数fopen。#include
int open(constchar*pathname,intflags);
int open(constchar*pathname,intflags,mode_t mode);
返回值:成功则返回文件描述符,否则返回-1
对于open函数来说,第三个参数仅当创建新文件时(即 使用了O_CREAT 时)才使用,用于指定文件的访问权限位(access permission bits)。pathname 是待打开/创建文件的POSIX路径名(如/home/user/a.cpp);flags 用于指定文件的打开/创建模式,这个参数可由以下常量(定义于fcntl.h)通过逻辑位或逻辑构成。O_RDONLY只读模式
O_WRONLY只写模式
O_RDWR读写模式
打开/创建文件时,至少得使用上述三个常量中的一个。以下常量是选用的:O_APPEND每次写操作都写入文件的末尾
O_CREAT如果指定文件不存在,则创建这个文件
O_EXCL如果要创建的文件已存在,则返回-1,并且修改errno的值
O_TRUNC如果文件存在,并且以只写/读写方式打开,则清空文件全部内容(即将其长度截短为0)
O_NOCTTY如果路径名指向终端设备,不要把这个设备用作控制终端。
O_NONBLOCK如果路径名指向FIFO/块文件/字符文件,则把文件的打开和后继I/O
设置为非阻塞模式(nonblockingmode)
以下三个常量同样是选用的,它们用于同步输入输出O_DSYNC等待物理I/O结束后再write。在不影响读取新写入的数据的
前提下,不等待
文件属性
更新。O_RSYNCread等待所有写入同一区域的写操作完成后再进行
O_SYNC等待物理I/O结束后再write,包括更新文件属性的I/O
open返回的文件描述符一定是最小的未被使用的描述符。
如果 NAME_MAX(文件名最大长度,不包括'\0')是 14,而我们想在当前目录下创建文件名长度超过 14 字节的文件,早期的 System V 系统(如 SVR2)会截断超出部分,只保留前 14 个字节;而由 BSD 衍生的(BSD-derived)系统会返回错误信息,并且把 errno 置为 ENAMETOOLONG。
POSIX.1 引入常量 _POSIX_NO_TRUNC 用于决定是否截断长文件名/长路径名。如果_POSIX_NO_TRUNC 设定为禁止截断,并且路径名长度超过 PATH_MAX(包括 '\0'),或者组成路径名的任意文件名长度超过 NAME_MAX,则返回错误信息,并且把 errno 置为 ENAMETOOLONG。
openPB程序语言
功能打开窗口。该函数有两种语法格式:
语法一、打开编程时已知数据类型的窗口对象;
语法二、打开程序运行后才能确定数据类型的窗口对象。下面分别予以介绍:
语法一、打开编程时已知数据类型的窗口对象
语法Open( windowvar {,parent } )
参数windowvar:要打开窗口的窗口名,可以使用窗口画笔定义的窗口对象名,也可以使用该窗口对象的某个变量。Open()函数把打开窗口的引用放置到windowvar变量中parent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Open()函数返回NULL。
语法二、打开程序运行后才能确定数据类型的窗口对象
语法Open
( windowvar,windowtype {,parent } )
参数windowvar:指定窗口变量名,Open()函数把打开窗口的引用放置到该变量中windowtype:string类型,指定要打开窗口的数据类型,该参数指定的窗口数据类型必须与windowvar参数的类型相同或是windowvar类型的后继对象parent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Open()函数返回NULL。
openVisual Basic语句
VB 中,Open 语句提供对文件的读取、写入、限定于其它进程打开的文件的操作。
语句结构:
OpenpathnameFormode[Accessaccess] [lock]As[#]filenumber[Len=reclength]部分描述
pathname必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。
mode必要。关键字,指定文件方式,有Append、Binary、Input、Output、或Random方式。如果未指定方式,则以Random访问方式打开文件。
access可选。关键字,说明打开的文件可以进行的操作,有Read、Write、或Read Write操作。
lock可选。关键字,说明限定于其它进程打开的文件的操作,有Shared、Lock Read、Lock Write、和Lock Read Write操作。
filenumber必要。一个有效的文件号,范围在 1 到 511 之间。使用FreeFile函数可得到下一个可用的文件号。
reclength可选。小于或等于 32,767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。
对文件做任何 I/O 操作之前都必须先打开文件。Open语句分配一个缓冲区供文件进行 I/O 之用,并决定缓冲区所使用的访问方式。
如果pathname指定的文件不存在,那么,在用Append、Binary、Output、或Random方式打开文件时,可以建立这一文件。
如果文件已由其它进程打开,而且不允许指定的访问类型,则Open操作失败,而且会有错误发生。
如果mode是Binary方式,则
在Binary、Input和Random方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在Append和Output方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件。
若要关闭 Open 所打开的文件,就要使用 Close 语句
Close 语句:关闭Open语句所打开的输入/输出 (I/O) 文件,
Close 语句结构:
Close[filenumberlist]
可选的filenumberlist参数为一个或多个文件号,其中filenumber为任何有效的文件号,
openJavascript
Javascript 中的 Open 方法可以(默认在新窗口)打开任意一个 URL。(必须和 Window 一起使用)
Window.Open 语句结构:
window.open(URL,name,features,replace) , 相关信息可以查看本词条的对 Javascript Open 方法
实例:(在HTML插入)
function openurl()
{
window.open("引号添加地址")//引号不能删掉,URL必须加HTTP://HTTPS://FTP://等协议名称
}
OpenBaidu
open相关函数
open(打开文件)
相关函数
头文件#include
#include
#include
定义函数int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_tmode);
open函数说明
参数pathname 指向欲打开的文件路径字符串。下列是参数flags 所能使用的标志位:O_RDONLY 以只读方式打开文件
O_WRONLY 以只写方式打开文件
O_RDWR 以可读写方式打开文件。
上述三种标志位是互斥的,也就是不可同时使用,但可与下列的标志位利用OR(|)运算符组合。O_CREAT 若欲打开的文件不存在则自动建立该文件。
O_EXCL 如果O_CREAT也被设置,此指令会去检查文件是否存在。文件若不存在则建立该文件,否则将导致打开文件错误。此外,若O_CREAT与O_EXCL同时设置,并且欲打开的文件为符号连接,则会打开文件失败。
O_NOCTTY 如果欲打开的文件为终端机设备时,则不会将该终端机当成进程控制终端机。
O_TRUNC 若文件存在并且以可写的方式打开时,此标志位会令文件长度清为0,而原来存于该文件的资料也会消失。
O_APPEND 当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到文件后面。
O_NONBLOCK 以不可阻断的方式打开文件,也就是无论有无数据读取或等待,都会立即返回进程之中。
O_NDELAY 同O_NONBLOCK。
O_SYNC 以同步的方式打开文件。
O_NOFOLLOW 如果参数pathname所指的文件为一符号连接,则会令打开文件失败。
O_DIRECTORY 如果参数pathname所指的文件并非为一目录,则会令打开文件失败。
open参数mode 组合
此为Linux2.2以后特有的标志位,以避免一些系统安全问题。参数mode 则有下列数种组合,只有在建立新文件时才会生效,此外真正建文件时的权限会受到umask值所影响,因此该文件权限应该为(mode-umaks)。S_IRWXU, 700权限,代表该文件所有者具有可读、可写及可执行的权限。
S_IRUSR或S_IREAD, 400权限,代表该文件所有者具有可读取的权限。
S_IWUSR或S_IWRITE, 200权限,代表该文件所有者具有可写入的权限。
S_IXUSR或S_IEXEC, 100权限,代表该文件所有者具有可执行的权限。
S_IRWXG, 070权限,代表该文件用户组具有可读、可写及可执行的权限。
S_IRGRP, 040权限,代表该文件用户组具有可读的权限。
S_IWGRP, 020权限,代表该文件用户组具有可写入的权限。
S_IXGRP, 010权限,代表该文件用户组具有可执行的权限。
S_IRWX, O07权限,代表其他用户具有可读、可写及可执行的权限。
S_IROTH, 004权限,代表其他用户具有可读的权限
S_IWOTH, 002权限,代表其他用户具有可写入的权限。
S_IXOTH, 001权限,代表其他用户具有可执行的权限。
open返回值
若所有欲核查的权限都通过了检查则返回文件描述符,表示成功,只要有一个权限被禁止则返回-1。
open错误代码
EEXIST 参数pathname所指的文件已存在,却使用了O_CREAT和O_EXCL标志位。
EACCESS 参数pathname所指的文件不符合所要求测试的权限。
EROFS 欲测试写入权限的文件存在于只读文件系统内。
EFAULT 参数pathname指针超出可存取内存空间。
EINVAL 参数mode不正确。
ENAMETOOLONG 参数pathname太长。
ENOTDIR 参数pathname不是目录。
ENOMEM 核心内存不足。
ELOOP 参数pathname有过多符号连接问题。
EIO I/O存取错误。
open附加说明
使用access()作用户认证方面的判断要特别小心,例如在access()后再作open()空文件可能会造成系统安全上的问题。
open定义和用法
编辑
定义和用法
open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。
语法
window.open(URL,name,features,replace)参数描述
URL一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。
name一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 和 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。
features一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。
replace一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:true - URL 替换浏览历史中的当前条目。false - URL 在浏览历史中创建新的条目。
提示和注释
请不要混淆方法 Window.open() 与方法 Document.open(),这两者的功能完全不同。为了使您的代码清楚明白,请使用 Window.open(),而不要使用 open()。
实例
[1]openMFC
编辑
CDaoWorkspace的成员函数Open函数介绍
头文件:
afxdao.h
类:
CDaoWorkspace
功能:
显式打开Dao默认工作区对应的工作区对象。
语法:
Virtual void Open(DPCTSTR lpszName =NULL);[2]
参数:
要打开Dao工作区的名字。
说明:Open把工作区对象置为打开状态,同时如果尚未对应用程序初始化,则初始化数据库引擎。
示例:
/****************************************************
演示函数原型:ws. Open ();
程序功能说明:程序打开默认工作区,尝试隔离ODBC事务。
****************************************************/
//定义CDaoWorkspace对象Ws
CDaoWorkspace Ws;
//打开工作区
Ws.Open();
//验证工作区是否通过强制到数据源的多个连
//接分割包含相同ODBC数据源的多个事务
If(!Ws.GetIsolateODBCTrans())
//开始隔离ODBC事务
Ws. SetIsolateODBCTrans(TRUE)
//关闭工作区
Ws.Close();
词条图册
更多图册
参考资料
2.
MSDN windows高级编程指南