open的库函数:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
open的函数形式:
int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);
flags:标志位
标志位选项:
O_APPEND
O_ASYNC
O_CLOEXEC
O_CREAT
O_DIRECT
......
注:以上标志位选项必须用|连接起来
mode:创建的pathname默认权限 ,必须写成8进制形式以0开头
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>int main()
{umask(0);//防止掩码影响最终生成的文件权限,故设为0int fd = open("log.txt",O_WRONLY|O_CREAT,0666);//既创建又写入,创建log.txt并默认权限为rw-rw-rw-if(fd < 0){perror("open");return 1;}//open successprintf("open success,fd: %d\n",fd);return 0;
}