C++mkdir()详细介绍
时间: 2023-11-14 10:20:07 浏览: 91
`mkdir()` 是 C++ 中用于创建一个新目录的函数,其原型如下:
```c++
int mkdir(const char* path, mode_t mode);
```
其中,第一个参数 `path` 指定要创建的目录的路径,可以是相对路径或绝对路径,需要以字符串的形式传递。第二个参数 `mode` 是一个权限参数,用于指定创建的目录的访问权限。
`mkdir()` 函数返回值为整型,如果目录创建成功,返回 0,如果创建失败,返回 -1,并设置相应的错误码。
下面是一个简单的示例:
```c++
#include <iostream>
#include <sys/stat.h> // 包含 mkdir 函数的头文件
using namespace std;
int main() {
if (mkdir("new_dir", 0777) == -1) { // 创建一个名为 "new_dir" 的目录,权限为 0777
cerr << "Error: " << strerror(errno) << endl; // 输出错误信息
return 1;
}
return 0;
}
```
在上面的示例中,我们使用 `mkdir()` 函数创建了一个名为 "new_dir" 的目录,并将其访问权限设置为 0777(即所有用户都有读、写、执行权限)。如果目录创建失败,我们通过 `strerror()` 函数和 `errno` 全局变量输出了错误信息。
需要注意的是,`mkdir()` 函数只能创建一级目录,如果需要创建多级目录,可以使用 `mkdir()` 函数和 `system()` 函数的组合,如下所示:
```c++
#include <iostream>
#include <cstdlib> // 包含 system 函数的头文件
using namespace std;
int main() {
if (system("mkdir -p new_dir/sub_dir") == -1) { // 创建名为 "new_dir" 的一级目录和名为 "sub_dir" 的二级目录
cerr << "Error: " << strerror(errno) << endl; // 输出错误信息
return 1;
}
return 0;
}
```
在上面的示例中,我们使用 `system()` 函数执行了一个 shell 命令,通过 `-p` 参数可以创建多级目录。如果执行失败,我们同样通过 `strerror()` 函数和 `errno` 全局变量输出了错误信息。