【C++】mkdir

题目描述:

工作中,每当要部署一台新机器的时候,就意味着有一堆目录需要创建。例如要创建目录“/usr/local/bin”,就需要此次创建“/usr”、“/usr/local”以及“/usr/local/bin”。好在,Linux下mkdir提供了强大的“-p”选项,只要一条命令“mkdir -p /usr/local/bin”就能自动创建需要的上级目录。
现在给你一些需要创建的文件夹目录,请你帮忙生成相应的“mkdir -p”命令。

输入描述:

输入包含多组数据。
每组数据第一行为一个正整数n(1≤n≤1024)。
紧接着n行,每行包含一个待创建的目录名,目录名仅由数字和字母组成,长度不超过200个字符。

输出描述:

对应每一组数据,输出相应的、按照字典顺序排序的“mkdir -p”命令。
每组数据之后输出一个空行作为分隔。

示例输入:

3
/a
/a/b
/a/b/c
3
/usr/local/bin
/usr/bin
/usr/local/share/bin

输出:

mkdir -p /a/b/c

mkdir -p /usr/bin
mkdir -p /usr/local/bin
mkdir -p /usr/local/share/bin

由题目我们可以了解到:

  • 输出的文件列表需要按照字典序排好序
  • 对于输入的路径有三种情况不用输出:
  1. 当前路径与前一个接收到的路径相同,则不用再输出一次
  2. 若前一个接收到的路径是当前路径的子串,则不用再次输出</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`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` 全局变量输出了错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值