Есть ли способ в стандартных библиотеках C++ (или linux sys/stat.h, sys/types.h, sys/.... libraries), чтобы установить права доступа к файлу файл при создании с ofstream
(или используя что-то еще из этих библиотек)?Настройка разрешений для файлов при открытии файла с помощью потока
Когда я создаю файл, он просто получает созданный с помощью некоторого набора по умолчанию права доступа к файлам (я предполагаю, независимо от текущего umask
есть), но я хочу, чтобы явно установить разрешения на нечто иное, чем по умолчанию в (напр. 600
), и я не могу просто установить umask перед запуском программы (b/c другие будут запускать ее).
// Example of creating a file by writing to it
ofstream fp(filename.c_str())
/* write something to it */
Есть ли способ сделать это в C++ или, если нет, то способ установить umask
в рамках программы на C++?
Например, в стандартной библиотеке языка C вы can just do:
open(filename, O_RDWR|O_CREAT, 0666)
, но я не хочу прибегать к использованию функции C, так как было бы хорошо, чтобы иметь возможность использовать функции, связанные с fstream
объектов.
(Side Примечание: был question чье название было именно то, что я искал, но оказалось, что не имеет отношения.)
Нет, C++ не знает прав доступа к файлам. (Сначала создайте файл, используя системные функции, а затем откройте поток C++) –
Вы имеете в виду что-то вроде открытия файла с помощью функции '' '' '' '' '' '' '' ', закройте этот дескриптор файла, а затем откройте его снова, используя' ofstream' ? – xgord
Существует экспериментальная библиотека [Filesystem library TS] (http://en.cppreference.com/w/cpp/experimental/fs) – NathanOliver