1. mkdir函数简介
在Linux中,mkdir
函数用于创建目录。这个函数非常常用,无论是在系统安装、脚本编写还是文件管理中常常会用到。下面就来详细介绍一下这个函数的用法和功能。
2. mkdir函数的语法
mkdir
函数的语法如下所示:
int mkdir(const char *path, mode_t mode);
2.1 参数说明
参数说明如下:
path:要创建的目录的路径。
mode:新创建的目录的权限,以八进制表示。
2.2 返回值
如果函数调用成功,mkdir
函数返回0;如果失败,则返回-1,并设置errno
变量来指示错误信息。
3. mkdir函数的用法示例
下面是一些mkdir
函数的用法示例:
3.1 创建单级目录
要创建一个单级目录,只需指定目录的路径即可:
int result = mkdir("/home/user/directory", 0755);
if (result == 0) {
printf("目录创建成功\n");
} else {
perror("目录创建失败");
}
上述代码将在/home/user/
目录下创建一个名为directory
的目录。若创建成功,则将输出"目录创建成功";若创建失败,则会输出错误信息。
3.2 创建多级目录
要创建一个多级目录,可以在路径中指定多个目录名:
int result = mkdir("/home/user/parent/child", 0755);
if (result == 0) {
printf("目录创建成功\n");
} else {
perror("目录创建失败");
}
上述代码将在/home/user/
目录下创建一个名为parent
的目录,并在parent
目录下创建一个名为child
的目录。
3.3 创建多级目录(递归方式)
如果要创建一个多级目录,并且其中的某些目录可能已存在,可以使用递归方式。例如:
int make_directory(const char *path, mode_t mode) {
char *tmp = strdup(path);
char *p = NULL;
int result;
for (p = strchr(tmp + 1, '/'); p; p = strchr(p + 1, '/')) {
*p = '\0';
result = mkdir(tmp, mode);
if (result != 0 && errno != EEXIST) {
free(tmp);
return result;
}
*p = '/';
}
result = mkdir(tmp, mode);
free(tmp);
return result;
}
int result = make_directory("/home/user/parent/child", 0755);
if (result == 0) {
printf("目录创建成功\n");
} else {
perror("目录创建失败");
}
上述代码将在/home/user/
目录下创建一个名为parent
的目录,并在parent
目录下创建一个名为child
的目录。如果目录已经存在,则会跳过创建。
4. 总结
mkdir
函数是Linux中一个非常有用且常用的函数,用于创建目录。通过指定路径和权限,我们可以在指定位置创建单级目录或多级目录。如果要创建多级目录并且其中的目录可能已存在,可以使用递归方式。使用过程中需要注意权限问题和错误处理,以确保创建目录的成功。
注意:本文中涉及到的代码示例均为伪代码,无法直接运行。