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


  Ver.0.8.4     Ver.0.8.9     Pending  

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


flock

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

usage: flock [-sxun] fd

Управление рекомендательными блокировками файлов.
  • -s Общая блокировка
  • -x Эксклюзивная блокировка (по умолчанию)
  • -u Разблокировка
  • -n Неблокирующая: отказ, а не ожидание блокировки

  • usage: flock [-sxun] fd

    Manage advisory file locks.
  • -s Shared lock
  • -x Exclusive lock (default)
  • -u Unlock
  • -n Non-blocking: fail rather than wait for the lock

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

    #define FOR_flock
    #include "toys.h"
    
    #include <sys/file.h>
    
    void flock_main(void)
    {
      int fd = xstrtol(*toys.optargs, NULL, 10), op;
    
      if (toys.optflags & FLAG_u) op = LOCK_UN;
      else op = (toys.optflags & FLAG_s) ? LOCK_SH : LOCK_EX;
    
      if (toys.optflags & FLAG_n) op |= LOCK_NB;
    
      if (flock(fd, op)) {
        if ((op & LOCK_NB) && errno == EAGAIN) toys.exitval = 1;
        else perror_exit("flock");
      }
    }