linux open函数功能,open(

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高级编程指南

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值