博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
open(),close() 打开/关闭文件
阅读量:5152 次
发布时间:2019-06-13

本文共 1602 字,大约阅读时间需要 5 分钟。

Open

open()是一个系统调用函数,用来打开或创建一个文件,通过不同的oflag选项实现不同功能。

使用时open()函数需要包含的头文件:<sys/types.h>,<sys/stat.h>,<fcntl.h>

函数原型:

  int open(const char *pathname, int oflags);

  int open(const char *pathname, int oflags, mode_t mode);

参数列表:

  pathname:要打开或创建的文件的全路径名

  oflag:函数选项(可以是用 ' | ' 传递多个选线实现不同功能)。     

  O_RDONLY(只读打开)、

  O_WRONLY(只写打开)、

  O_RDWR(读写打开)中的一个于下列一个或多个常数

  O_APPEND: 追加到文件尾 O_CREAT: 若文件不存在则创建它。使用此选择项时,需同时说明第三个参数mode,用其说明新闻件的访问权限

  O_EXCL: 如果同时指定

  O_CREAT,而该文件又是存在的,报错;也可以测试一个文件是否存在,不存在则创建。

  O_TRUNC: 如果次文件存在,而且为读写或只写成功打开,则将其长度截短为0 O_SYNC: 使每次write都等到物理I\O操作完成。

  mode:对于open而言,仅当是用 O_CREAT 选项是才使用此参数,表示新建文件的权限设置。文件权限使用 3位 8进制数 (eg:0666)表示。

返回值:

  成功返回文件描述符,出错返回-1 。

 

Close

close()是一个系统调用函数(systemcall)。作用关闭一个打开的文件。

需要包含的头文件:<unistd.h>

函数原型:

  int close(int fd)

参数:

  fd:需要关闭文件的文件描述符。

返回值:

  成功返回 0;   出错返回 -1;

  当一个进程终止的时候,它所有的打开文件都是由内核自动关闭。很多程序都使用这一功能而不显式地调close关闭一个已打开的文件。 但是,作为一名优秀的程序员,应该显式的调用close来关闭已不再使用的文件。

 

使用open创建一个文件,close关闭:open.c

1 #include 
2 #include
3 #include
4 #include
5 #include
6 7 #define FILE_PATH "./test.txt" 8 9 int main(void)10 {11 int fd; 12   /*创讲一个权限为0666的文件,并以读写方式打开,若文件已存在进行提示*/13 if ((fd = open(FILE_PATH, O_RDWR | O_CREAT | O_EXCL, 0666)) < 0) {14 printf("open error\n");      /*当前目标已存在test.txt文件,打印“open error”*/15 exit(-1);16 } else {17 printf("open success\n");     /*不存在创建该文件,打印“open success”*/18 } 19   close(fd);        /*关闭文件*/20 return 0;21 }

 

转载于:https://www.cnblogs.com/chen-farsight/p/6023147.html

你可能感兴趣的文章
postgresql客户端连接错误的解决方法【转】
查看>>
解决Wireshark没有网卡问题
查看>>
通过一个真实故事理解SOA监管(zz)
查看>>
LinkedList的实现原理
查看>>
themeleaf中使用javascript时,字符“&&”的转义问题。
查看>>
在linux上搭建SVN服务器并自动更新至WEB目录
查看>>
has the wrong structure
查看>>
3.27上午 网课+真题
查看>>
虚方法、重写方法以及抽象类的知识小结
查看>>
【场景】消息队列使用场景
查看>>
Web代理工具NProxy
查看>>
OpenCV——字符提取并保存
查看>>
fzu 2253 salty fish
查看>>
ListView返回顶部
查看>>
python 线程
查看>>
好的web前端是如何拿到30万年薪的?
查看>>
think读取器修改器
查看>>
关于settimeout 和for循环
查看>>
MQTT和ActiveMQ
查看>>
Flink articles
查看>>