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);//防止掩码影响最终生成的文件权限,故设为0
int fd = open("log.txt",O_WRONLY|O_CREAT,0666);//既创建又写入,创建log.txt并默认权限为rw-rw-rw-
if(fd < 0)
{
perror("open");
return 1;
}
//open success
printf("open success,fd: %d\n",fd);
return 0;
}