Я создаю файл в C, используя следующий код:разрешения создания файла в C
int outfd = open(arg,O_CREAT|O_TRUNC|O_WRONLY, f_per);
f_per
является число разрешений файлов.
Установка f_per
в 0644
, выполнение кода и делающие Ls -l дает мне права доступа к файлам (выход), установленные в -rw-r--r--
, который, как ожидается. Однако настройка вещей на 0777 дает разрешения как -rwxrwxr-x
вместо -rwxrwxrwx
. Любая идея, почему это происходит?
Если вы на POSIX : 'umask'? – EOF
Cf. http://unix.stackexchange.com/questions/93269/how-umask-system-call-is-masking-the-permission –
Ах! Мне не хватало этого «unmask». Что все равно? (Не очень опытный с C) – Ranveer