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

33 lines
1001 B
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 编写一个程序使用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;
}