Как создать файл в корневом каталоге (в Ubuntu) с правами на запись для всех, используя fopen () в C? - PullRequest
0 голосов
/ 27 июня 2019

Я открываю файл в одной папке (/ GDF) корневого каталога с помощью fopen (). Указатель файла, который я получаю в ответ, равен NULL. Папка, в которой я открываю файл, имеет разрешение «rwx» для всех.

Я уже пытался сначала создать файл с помощью open (), дав всем права доступа "rw", а затем открыв файл с помощью fopen.

FILE* ptr1 = fopen(filename,"r");  
FILE* ptr2;
int x=open("/GDF/new_temp_file.txt",O_CREAT, 0666);
ptr2=fopen("/GDF/new_temp_file.txt","w");
printf("%d\n",x);     //x is -1

if(ptr2==NULL)
    perror("fopen");   //Output: fopen: permission denied

while(fscanf(ptr1,"%[^\n]\n",arr)!=EOF)
{
    /** Doing something **/
}

fclose(ptr1);
fclose(ptr2);
return;

Я напечатал ошибку и там написано fopen: разрешение отклонено . Я хочу иметь возможность создать файл для записи в корневом каталоге (в папке, у которой уже есть права доступа «rwx» для всех).

EDIT: 1) ls -ld / GDF выдает drwxrwxrwx 4 root root 4096 27 июня 17: 42

2) umask имеет значение 0002 (u = rwx, g = rwx, o = rx)

3) Вывод open () в -1

...