以下是我尝试在Linux下使用C编写文件的方法
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
int main(int argc, char *argv[])
{
printf("Sharing a file using fork() command.\n");
int file;
//man 2 open page
errno = 0;
file = open("/home/anu/Desktop/Codes/Share-File/bin/Debug/file.txt",O_WRONLY | O_APPEND);
if(-1 == file)
{
printf("\nOpen() failed with error [%s]\n",strerror(errno));
return 1;
}
else
{
printf("\nOpen() Successful\n");
if (write(1, "This will be output to standard out\n", 36) != 36)
{
write(2, "There was an error writing to standard out\n", 44);
return -1;
}
}
return 0;
}
文件成功打开,但我没有附加我提供的数据。我哪里出错了?附:请不要指向使用fopen()等。我想仅使用write()函数来实现预期的结果。 感谢。
答案 0 :(得分:1)
首先,最好使用标准fds STDIN_FILENO
,STDOUT_FILENO
,STDERR_FILENO
的预定义常量。
此外,当您完成写入时,您必须close
打开文件。无论如何:您实际上并没有写入您在此示例中打开的文件。您期望得到什么输出?