#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
int main()
{
int fd;
char c1[100];
printf("type text: ");
scanf("%s", c1);
printf("%s\n", c1);
if((fd = open("test.txt", O_WRONLY | O_CREAT | O_APPEND)) == -1)
{
return -1;
}
dup2(fd, 1);
close(fd);
printf("%s\n", c1);
return 0;
}
如果“ test.txt”文件已经存在,则此代码可以正常工作。 但是,如果“ test.txt”文件不存在,此代码将使“ test.txt”文件看起来像写入成功,但是txt文件不可读。(权限问题)
我尝试了
if((fd = open("test.txt", O_RDWR | O_CREAT | O_APPEND)) == -1)
它有同样的问题。
我知道这是权限问题,但是我应该如何解决此代码?