《Linux常用C函数(中文版)》中居然没有这个函数,这使我感到很惊讶。勉强在百度上看到一点点:
Linux下mkdir函数
头文件库:
#include <sys/stat.h>
#include <sys/types.h>
函数原型:
int mkdir(const char *pathname, mode_t mode);
函数说明:
mkdir()函数以mode方式创建一个以参数pathname命名的目录,mode定义新创建目录的权限。
返回值:
若目录创建成功,则返回0;否则返回-1,并将错误记录到
全局变量errno中。
mode方式:可多个权限相或,如0755表示S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH
代表:该文件所有者拥有读,写和执行操作的权限,该文件用户组拥有可读、可执行的权限,其他用户拥有可读、可执行的权限。
S_IRWXU
|
00700权限,代表该文件所有者拥有读,写和执行操作的权限
|
S_IRUSR(S_IREAD)
|
00400权限,代表该文件所有者拥有可读的权限
|
S_IWUSR(S_IWRITE)
|
00200权限,代表该文件所有者拥有可写的权限
|
S_IXUSR(S_IEXEC)
|
00100权限,代表该文件所有者拥有执行的权限
|
S_IRWXG
|
00070权限,代表该文件用户组拥有读,写和执行操作的权限
|
S_IRGRP
|
00040权限,代表该文件用户组拥有可读的权限
|
S_IWGRP
|
00020权限,代表该文件用户组拥有可写的权限
|
S_IXGRP
|
00010权限,代表该文件用户组拥有执行的权限
|
S_IRWXO
|
00007权限,代表其他用户拥有读,写和执行操作的权限
|
S_IROTH
|
00004权限,代表其他用户拥有可读的权限
|
S_IWOTH
|
00002权限,代表其他用户拥有可写的权限
|
S_IXOTH
|
00001权限,代表其他用户拥有执行的权限
|
#include <sys/stat.h>int main(char argc, char *argv[]){ int ok = 0; if((ok=mkdir(argv[1],0755)) != 0) { perror("mkdir %s", argv[1]); } return 0; }
当我如上写的时候好像不能深层的目录,不过如果将argv[1]写成深层目录的话,实验结果是可以的。