【问题标题】:mkdir in init.rcinit.rc 中的 mkdir
【发布时间】:2012-09-15 13:26:33
【问题描述】:

初始化.rc

第264行---mkdir /data/misc/radio 0770 radio radio

我想将 /data/misc/radio 的权限更改为 0775。

我在上面的行旁边写了这个: 第265行---chmod 0775 /data/misc/radio.

如果我将第 264 行更改为此 ---mkdir /data/misc/radio 0775 radio radio..

这条线有什么问题? 有人说如果 mkdir 失败(如果目录已经存在)那么权限将不会设置为 0775。所以为了确保如果 mkdir 失败,权限会更改为 0775,我们在不同的行中编写了 chmod 命令。

但是有这么多的mkdir命令会创建具有不同权限的不同目录,那么如果我们按照上面的场景,那么我们应该为每个mkdir命令提供不同的chmod命令吗?

【问题讨论】:

    标签: android system mkdir


    【解决方案1】:

    当 init 执行 init.rc 脚本时,如果目录不存在,mkdir 将根据您提供的权限创建目录,如果目录存在,则根据 mkdir 命令设置权限。

    来自 aosp system/core/init/builtins.c 中的函数do_mkdir()

    ret = make_dir(args[1], mode);
    /* chmod in case the directory already exists */
    if (ret == -1 && errno == EEXIST) {
        ret = _chmod(args[1], mode);
    }
    if (ret == -1) {
        return -errno;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 2014-01-27
      相关资源
      最近更新 更多