qfedu-linux-advanced-level/day2/homework/h1.c

33 lines
1001 B
C
Raw Normal View History

2023-08-15 23:23:31 +08:00
// 编写一个程序使用open系统调用创建一个新文件并使用write系统调用将字符串写入该文件。
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h> // perror
int main(int argc, char const *argv[])
{
// 打开文件 "a.txt",如果文件不存在则创建,以只写方式打开,如果文件已存在则打开失败,打开后将文件内容截断为空
int fd = open("a.txt", O_WRONLY | O_CREAT | O_EXCL | O_TRUNC, 0644);
if (fd < 0)
{
perror("open"); // 打印错误信息
return -1;
}
char content_line[] = "hello\nworld\n";
ssize_t len = write(fd, content_line, sizeof(content_line)); // 向文件写入 content_line 的内容
if (len < 0)
{
perror("write"); // 打印错误信息
return -1;
}
if (close(fd) < 0) // 关闭文件描述符
{
perror("close"); // 打印错误信息
return -1;
}
return 0;
}