Man pages на русском



              

FCNTL(2) - часть 3


[EBADF] Аргумент fildes не является корректным дескриптором открытого файла. [EINVAL] При операции cmd, равной F_DUPFD, значение аргумента arg либо отрицательно, либо больше или равно максимально допустимому для одного пользователя количеству дескрипторов открытых файлов. [EINVAL] При операции cmd, равной F_GETLK, F_SETLK или F_SETLKW, значение аргумента arg или информация, на которую указывает arg, некорректны. [EACCES] При операции cmd, равной F_SETLK, делается попытка блокировать на чтение (F_RDLCK) сегмент файла, заблокированный другим процессом на запись, либо попытка блокировать на запись (F_WRLCK) сегмент файла, заблокированный другим процессом на чтение или запись. [ENOLCK] При операции cmd, равной F_SETLK или F_SETLKW, превышается максимально допустимое системой количество блокировок. [EDEADLK] При операции cmd, равной F_SETLKW, ожидание возможности установить блокировку приводит к тупику. [EFAULT] При операции cmd, равной F_SETLK, аргумент arg указывает за пределы отведенного процессу адресного пространства. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [ENOLINK] Дескриптор fildes ассоциирован с файлом на удаленном компьютере, связи с которым в данный момент нет.

СМ. ТАКЖЕ

, , , , , , , .

ДИАГНОСТИКА

При успешном завершении системного вызова в зависимости от операции cmd возвращаются следующие значения:

  • F_DUPFD Новый дескриптор файла.
  • F_GETFD Значение флага (определен только младший бит).
  • F_SETFD Значение, отличное от -1.
  • F_GETFL Значение флагов статуса файла.
  • F_SETFL Значение, отличное от -1.
  • F_GETLK Значение, отличное от -1.
  • F_SETLK Значение, отличное от -1.
  • F_SETLKW Значение, отличное от -1.
  • В случае ошибки возвращается -1, а переменной errno присваивается код ошибки.

    ПРЕДОСТЕРЕЖЕНИЯ

    Так как в будущем переменной errno будет присваиваться значение EAGAIN вместо EACCES в случае, если сегмент файла уже блокирован другим процессом, для достижения мобильности прикладных программ следует ожидать и обрабатывать оба кода ошибки.




    Содержание  Назад  Вперед