Я пытаюсь написать строку в файл и установить права доступа к файлу 777. Полученный файл пуст и имеет разрешения 775. Маска режима кажется правильной, и когда я проверяю с доступом(), он возвращает 0. Я могу chmod файл до 777 (без использования sudo). Что происходит?Установка разрешений на 777, итоговый файл 775
Запуск ubuntu 14.10. Жесткий диск - ext3/4.
if (argc == 1) {
int fd = open ("sampleFile", O_CREAT , S_IRWXU | S_IRWXG | S_IRWXO);
int writ = 0xDEADBEEF;
if (fd != -1) {
char str [] = "My permission should be set to 777.";
writ = write (fd, &str, (int)strlen (str));
//writ = access ("sampleFile", W_OK);
close (fd);
printf ("(%o) %s\n", writ, str);
return 0;
}
else {
printf ("Couldn't make sampleFile in pwd.\n");
return 1;
}
}
1. Это было неосторожно меня. Я должен был внимательно прочитать справочную страницу. 2. Я понятия не имел, что такое umasks, но, прочитав его на человеке и назвав его в моем терминале, он вернул «0002», как вы подозревали. Я бы никогда не смог собрать это вместе; Большое спасибо. – Lou