33 lines
1001 B
C
33 lines
1001 B
C
|
// 编写一个程序,使用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;
|
|||
|
}
|