函数原型:
<unistd.h> <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);
参数说明:
返回值说明:
flags选项一般有以下几种常用方式:
O_SYNC:以同步方式打开文件
O_CREAT:若打开的文件不存在则自动创建该文件
O_TRUNC:如果打开的文件存在并且以可写方式打开,则将文件的数据全部清空
O_NONBLOCK:以非阻塞式打开文件,无论有无数据或等待,都会立即返回进程之中
O_APPEND:每次打开文件后,新写入的数据会追加到文件末尾,如果不指定,则新写入的数据会从文件起始位置开始写,这会覆盖原来的数据。
O_EXCL:若打开的文件存在则出错,如果设置了O_CREAT的话,会先去检查文件是否存在,不存在则创建该文件,存在的话将出错,可用于测试一个文件是否存在。
函数原型:
int close(int fd);
参数fd:已打开的文件的文件描述符
返回值:成功返回0,失败-1
使用open和close打开并关闭一个文件
#include <unistd.h> #include <stdio.h> #include <fcntl.h> #include <errno.h> int main(void) { int fd = open(“test.txt” , O_RDWR | O_CREAT); if(-1 == fd){ perror(“open”); //使用errno必须包含errno.h //printf(“errno = %d\n”, errno); return -1; } printf(“fd = %d\n”, fd); close(fd); return 0; }
文章来源: 1-文件IO―open/close函数