Справочник по консольным командам Toybox для Android 12


  Ver.0.8.4     Ver.0.8.9     Pending  

Путь: Toys/LSB, команды версии: Ver.4     Ver.9

Комментарии в файле mknod.c :

Команд: 2


mknod

usage: mknod [-m MODE] NAME TYPE [MAJOR MINOR]

Создайте специальный файл NAME с заданным типом. ТИП b для блочного устройства, c или u для символьного устройства, p для именованного канала (который игнорирует MAJOR/MINOR).
  • -m Режим (права доступа к файлам) нового устройства в восьмеричном формате или формате u+x

  • usage: mknod [-m MODE] NAME TYPE [MAJOR MINOR]

    Create a special file NAME with a given type. TYPE is b for block device, c or u for character device, p for named pipe (which ignores MAJOR/MINOR).
  • -m Mode (file permissions) of new device, in octal or u+x format

  • mknod_z

    usage: mknod [-Z CONTEXT] ...

  • -Z Установить контекст безопасности для созданного файла

  • usage: mknod [-Z CONTEXT] ...

  • -Z Set security context to created file

  • Исходный текст в файле mknod.c

    #define FOR_mknod
    #include "toys.h"
    
    GLOBALS(
      char *Z, *m;
    )
    
    void mknod_main(void)
    {
      mode_t modes[] = {S_IFIFO, S_IFCHR, S_IFCHR, S_IFBLK};
      int major=0, minor=0, type;
      int mode = TT.m ? string_to_mode(TT.m, 0777) : 0660;
    
      type = stridx("pcub", *toys.optargs[1]);
      if (type == -1) perror_exit("bad type '%c'", *toys.optargs[1]);
      if (type) {
        if (toys.optc != 4) perror_exit("need major/minor");
    
        major = atoi(toys.optargs[2]);
        minor = atoi(toys.optargs[3]);
      }
    
      if (toys.optflags & FLAG_Z)
        if (-1 == lsm_set_create(TT.Z))
          perror_exit("-Z '%s' failed", TT.Z);
      if (mknod(*toys.optargs, mode|modes[type], dev_makedev(major, minor)))
        perror_exit_raw(*toys.optargs);
    }