在C++的標準庫(或linux sys/stat.h,sys/types.h,sys/....庫)中設置文件權限文件創建時使用ofstream
(或使用其他庫中的其他文件)?使用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++或者如果沒有做到這一點,一個方法來設置C++程序中umask
?
例如,在C標準庫你can just do:
open(filename, O_RDWR|O_CREAT, 0666)
,但我不希望訴諸使用C函數,因爲它會是不錯的能夠使用與相關的功能fstream
對象。
(側面說明:有一個question其標題正是我一直在尋找,但它竟然是無關)
不,C++不知道文件權限。 (首先創建文件,使用系統函數並打開C++流) –
你的意思是使用C的open函數打開文件,關閉該文件描述符,然後使用'ofstream'再次打開它? – xgord
有實驗[Filesystem library TS](http://en.cppreference.com/w/cpp/experimental/fs) – NathanOliver