qfedu-linux-advanced-level/day2/open_or_create_test.c

32 lines
1.1 KiB
C
Raw Normal View History

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h> // close
int main(int argc, char const *argv[])
{
// 打开或创建一个文件,以只写方式打开,如果文件不存在则创建,如果文件已存在则报错
// 权限设置为用户可读、用户可写、组可读和其他人可读
int fd = open("test.txt", O_WRONLY | O_CREAT | O_EXCL | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
if (fd < 0)
{
perror("open"); // 打印错误信息
return -1; // 返回错误码
}
printf("打开并创建文件成功\n");
if (close(fd) < 0)
{
perror("close"); // 打印错误信息
return -1; // 返回错误码
}
return 0; // 返回成功码
}
/*
0644
"trunc" "truncate" "截断" "缩短"
int fd = open("d1_test.txt", O_WRONLY | O_CREAT | O_TRUNC, 0654);
O_EXCL ()
*/