gnu coreutils mkdir.c源码分析

107 篇文章 1 订阅
95 篇文章 1 订阅

mkdir有-p选项,表示父目录不存在,就顺便也创建。
-m选项,用于目录权限相关设置
前面的一扫而过,像usage函数,功能都一样。重点在main.c中,
 while ((optc = getopt_long (argc, argv, "pm:v", longopts, NULL)) != -1)
这段用于分析选项,并根据选项对某些变量进行设置
再一个大的for循环,对每个需要建立的目录分别建立如下:
 for (; optind < argc; ++optind)
    {
}
当设置-p选项时,先有一段
 if (create_parents)
 {
   char *parents = dir_name (argv[optind]);
   fail = make_path (parents, parent_mode, parent_mode,
       -1, -1, 1, verbose_fmt_string);
   free (parents);
 }
但make_path是用来建立其父目录的吧,打开make_path
又是很长一截,其中调用mkdir系统调用。我也不明白这个调用的具体用法,肯定是用来创建目录的。
但/root/test/01
创建那个目录呢?还是
/root
/root/test
/root/test/01
全部创建,我不明白。
还是回到main.c,接着调用
 fail = make_dir (dir, dir, newmode, &dir_created);
但make_path,make_dir有何不同呢?想不明白。下次再想吧。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值