C создать текстовый файл и записать в текстовый файл с dup2 - PullRequest
0 голосов
/ 19 декабря 2018
#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) У него такая же проблема.

Я знаю, что это проблема с правами доступа, но как мне исправить этот код?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...