文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Open和close

Open和close

时间:2010-11-03  来源:1987hanen

Open和close

(1)   Open和close函数说明

Open函数是用于打开或创建文件,打开或创建文件时可以指定文件属性及用户的权限等到各种参数。

close函数是用于关闭一个打开文件。当一个进程终止时,它所有已打开的文件都由内核

自动关闭,很多程序都使用这一功能而不显示地关闭一个文件。

(2)open和close函数格式

open函数的语法格式如表6.1 所示。

open函数语法要点

所需头文件

#include <sys/types.h> // 提供类型pid_t的定义

#include <sys/stat.h>

#include <fcntl.h>

函数原型int open(const char *pathname,flags,int perms)

pathname 被打开的文件名(可包括路径名)

O_RDONLY:只读方式打开文件

O_WRONLY:可写方式打开文件

O_RDWR:读写方式打开文件

O_CREAT:如果该文件不存在,就创建一个新的文件,并用第三个参

数为其设置权限

O_EXCL:如果使用O_CREAT时文件存在,则可返回错误消息。这一

参数可测试文件是否存在

O_NOCTTY:使用本参数时,如文件为终端,那么终端不可以作为调

用open()系统调用的那个进程的控制终端

O_TRUNC:如文件已经存在,并且以只读或只写成功打开,那么会先

全部删除文件中原有数据

flag:文件

打开的方

O+APPEND:以添加方式打开文件,在打开文件的同时,文件指针指

向文件的末尾

函数传入值

perms 被打开文件的存取权限,为8进制表示法

函数返回值

成功:返回文件描述符

失败:-1

在 open函数中,flag参数可通过“|”组合构成,但前3 个函数不能相互组合。perms 是

文件的存取权限,采用8 进制表示法,相关内容读者可参见第2章。

close函数的语法格式如下

close函数语法要点

所需头文件#include <unistd.h>

函数原型int close(int fd)

函数输入值fd:文件描述符

函数返回值0:成功

-1:出错

(3)open和close函数使用实例

下面实例中的open 函数带有3 个flag 参数:O_CREAT、O_TRUNC 和O_WRONLY,

这样就可以对不同的情况指定相应的处理方法。另外,这里对该文件的权限设置为0600。其

源码如下所示:

/*open.c*/

#include <unistd.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

#include <stdlib.h>

#include <stdio.h>

int main(void)

{

int fd;

/*调用open函数,以可读写的方式打开,注意选项可以用“|”符号连接*/

if((fd = open("/home/laohan/hello.c", O_CREAT | O_TRUNC | O_WRONLY , 0600 ))<0)

{

perror("open:");

exit(1);

}

Else

{

printf("Open file: hello.c %d\n",fd);

}

if( close(fd) < 0 )

{

perror("close:");

exit(1);

}

else

printf("Close hello.c\n");

exit(0);

}

 

注:open函数返回的文件描述符一定是最小的未用文件描述符。由于一个进程在启动时自动打开了

0、1、2 三个文件描述符,因此,该文件运行结果中返回的文件描述符为3。读者可以尝试在

调用open函数之前,加依据close(0),则此后在open函数时返回的文件描述符为0(若关闭文

件描述符1,则在执行时会由于没有标准输出文件而无法输出)。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载