C创建txt文件并使用dup2写入txt文件

时间:2018-12-19 14:27:54

标签: c linux

#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) 它有同样的问题。

我知道这是权限问题,但是我应该如何解决此代码?

0 个答案:

没有答案