2010-08-18 29 views
1

我使用C语言和Linux操作系统作为我的编程平台。我想知道如何以编程方式创建只读文件夹? Linux或类Unix系统的C语言中是否有任何mkdir命令?用C语言创建只读文件夹

谢谢。

回答

5

执行此操作的方法是使用mkdir(2)来创建文件夹,使用您希望的文件填充该文件夹,使用stat(2)获取当前权限,屏蔽写入位,然后使用chmod(2)来设置权限。

+0

为什么让2个电话!? – 2010-08-18 08:41:45

+0

对于列出的所有功能,POSIX手册页还有什么问题?这里没有特定的操作系统。 – 2010-08-18 08:42:37

+0

如果您在'mkdir()'调用中明确地设置模式,那么您可以跳过'stat()'调用,但最终忽略用户的umask设置。首先创建目录只读,这样以后就不能再填充目录了。是的,您也可以在第3节中找到每个电话。 – 2010-08-18 08:54:10

3

您可以使用mkdir系统调用:

int mkdir (const char *filename, mode_t mode); 

为了使新创建的文件夹RO(不写,不执行权限),你可以使用mode参数的描述here

0

的umask应该工作

#include <stat.h> 
1

您可以使用此一:

#include <sys/stat.h> 
#include <sys/types.h> 

int mkdir(const char *pathname, mode_t mode); 
1

可以使用mkdir()功能

简介:

#include <sys/stat.h> 

int mkdir(const char *path, mode_t mode); 

例如创建一个名为“你好”的文件夹,只有当前用户可以访问:

mkdir("hello", 0700); /*the second argument is the permission mask*/ 

如需进一步信息类型的终端上

man 2 mkdir 

如果你觉得创意,你可以在一个比较幼稚做到这一点方式

system("mkdir hello"); 
system("chmod 700 hello"); 

,但没有理由这样做...