Linux中创建目录的函数:mkdir

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中一个非常有用且常用的函数,用于创建目录。通过指定路径和权限,我们可以在指定位置创建单级目录或多级目录。如果要创建多级目录并且其中的目录可能已存在,可以使用递归方式。使用过程中需要注意权限问题和错误处理,以确保创建目录的成功。

注意:本文中涉及到的代码示例均为伪代码,无法直接运行。

操作系统标签