【发布时间】:2016-02-06 17:40:54
【问题描述】:
在 C++ 的标准库(或 linux sys/stat.h、sys/types.h、sys/....或使用这些库中的其他东西)?
当我创建一个文件时,它只是使用一些默认的文件权限集创建的(我假设当前umask 是什么),但我想明确地将权限设置为默认值以外的其他权限(例如@987654326 @),我不能在启动程序之前设置 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再次打开它? -
@NathanOliver,谁能猜到?在 2015 年,我们终于意识到我们确实需要一种在 C++ 中创建或读取目录的方法:)
标签: c++ linux file-permissions fstream