Я открываю файл в одной папке (/ 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