Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма UNIXΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 30

Автор РобачСвский АндрСй ΠœΠΈΡ…Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‡

Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° errnum Π½ΠΎΠΌΠ΅Ρ€ ошибки ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ сообщСниС ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠΉ ситуации.

Ѐункция perror(3C) объявлСна ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

#include <errno.h>

#include <stdio.h>

void perror(const char *s);

Ѐункция Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² стандартный ΠΏΠΎΡ‚ΠΎΠΊ сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠΉ ситуации, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ errno. Π‘Ρ‚Ρ€ΠΎΠΊΠ° s, пСрСдаваСмая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, прСдваряСт это сообщСниС ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ содСрТа Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ использованиС этих Π΄Π²ΡƒΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

#include <errno.h>

#include <stdio.h>

main(int argc, char *argv[]) {

Β fprintf(stderr, "ENOMEM: %s\n", strerror(ENOMEM));

Β errno = ENOEXEC;

Β perror(argv[0]);

}

Запустив ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° экранС:

$ <b>a.out</b>

ENOMEM: Not enough space

a.out: Exec format error

Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Π² частности, ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ стандартных ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ UNIX. НапримСр:

$ <b>rm does_not_exist</b>

does_not_exist: No such file or directory
ошибка ENOENT

$ <b>pg do_not_read</b>

do_not_read: Permission deniedΒ Β Β Β Β Β Β Β Β Β 
 ошибка EACCESS

$

Π’ Ρ‚Π°Π±Π». 2.1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ ошибки систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выводят Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ strerror(3C) ΠΈ perror(3C), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС.

Π’Π°Π±Π»ΠΈΡ†Π° 2.1. НСкоторыС ошибки систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²

Код ошибки ΠΈ сообщСниС ОписаниС
E2BIG Arg list too long Π Π°Π·ΠΌΠ΅Ρ€ списка Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… систСмному Π²Ρ‹Π·ΠΎΠ²Ρƒ exec(2), плюс Ρ€Π°Π·ΠΌΠ΅Ρ€ экспортируСмых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ ARG_MAX Π±Π°ΠΉΡ‚
EACCESS PermissionΒ denied ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ с нСдостаточными ΠΏΡ€Π°Π²Π°ΠΌΠΈ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса (опрСдСляСмого эффСктивным UID ΠΈ GID процСсса ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°)
EAGAIN ResourceΒ temporarilyΒ unavailable ΠŸΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ ΠΏΡ€Π΅Π΄Π΅Π» использования Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ рСсурса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° процСссов ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ прСвысил ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ количСству процСссов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ UID. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ нСдостаток памяти ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ограничСния (см. Ρ€Π°Π·Π΄Π΅Π» "ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ" Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅)
EALREADY OperationΒ already in progress ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΡƒΠΆΠ΅ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ
EBADF BadΒ file number ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ дСскриптором, Π½Π΅ Π°Π΄Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ»; Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния ΠΈΠ»ΠΈ записи с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ дСскриптором, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π° запись ΠΈΠ»ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, соотвСтствСнно
EBADFD FileΒ descriptorΒ in bad state Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор Π½Π΅ адрСсуСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ дСскриптором, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° запись
EBUSY Device busy ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° монтирования устройства (Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ; ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π°Π·ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму, ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹; ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° обращСния ΠΊ нСдоступным рСсурсам (сСмафоры, Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ‚.ΠΏ.)
ECHILD NoΒ childΒ processes Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ wait(2) процСссом, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… процСссов ΠΈΠ»ΠΈ процСссов, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΆΠ΅ Π±Ρ‹Π» сдСлан Π²Ρ‹Π·ΠΎΠ² wait(2)
EDQUOT DiskΒ quotaΒ exceeded ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° записи Π² Ρ„Π°ΠΉΠ», созданиС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠ²ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° дисковыС Π±Π»ΠΎΠΊΠΈ, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° создания Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠ²ΠΎΡ‚Ρ‹ Π½Π° число inode
EEXIST FileΒ exists Имя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° использовано Π² нСдопустимом контСкстС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сдСлана ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° создания символичСской связи с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°
EFAULT BadΒ address Аппаратная ошибка ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ использования систСмой Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² качСствС указатСля ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ нСдопустимый адрСс
EFBIG FileΒ too large Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° прСвысил установлСнноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ RLIMIT_FSIZE ΠΈΠ»ΠΈ максимально допустимый Ρ€Π°Π·ΠΌΠ΅Ρ€ для Π΄Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (см. Ρ€Π°Π·Π΄Π΅Π» "ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ" Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅)
EINPROGRESS OperationΒ now in progress ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, установлСниС сСтСвого соСдинСния) для Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
EINTR InterruptedΒ system call ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ асинхронного сигнала, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сигнала SIGINT ΠΈΠ»ΠΈ SIGQUIT, Π²ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ систСмного Π²Ρ‹Π·ΠΎΠ²Π°. Если Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ процСсса Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сигнала, ΠΏΡ€Π΅Ρ€Π²Π°Π½Π½Ρ‹ΠΉ систСмный Π²Ρ‹Π·ΠΎΠ² Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с этой ошибкой
EINVAL InvalidΒ argument ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° систСмному Π²Ρ‹Π·ΠΎΠ²Ρƒ. НапримСр, Ρ€Π°Π·ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ устройства (Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ сигнала систСмному Π²Ρ‹Π·ΠΎΠ²Ρƒ kill(2)
EIO I/O error Ошибка Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° физичСского устройства
EISDIR Is aΒ directory ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, нСдопустимой для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, запись Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° write(2)
ELOOP NumberΒ ofΒ symbolicΒ linksΒ encounteredΒ duringΒ pathΒ nameΒ traversalΒ exceedsΒ MAXSYMLINKS ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ трансляции ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ нСдопустимо большоС число символичСских связСй, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ MAXSYMLINKS
EMFILE TooΒ manyΒ openΒ files Число ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² для процСсса прСвысило максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ OPEN_MAX
ENAMETOOLONG FileΒ name too long Π”Π»ΠΈΠ½Π° ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡƒΡ‚ΡŒ) прСвысила максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ PATH_MAX
ENFILE File tableΒ overflow ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
ENODEV No such device ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° нСдопустимой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для устройства. НапримСр, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° чтСния устройства Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для записи ΠΈΠ»ΠΈ опСрация для Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ устройства
ENOENT NoΒ suchΒ fileΒ or directory Π€Π°ΠΉΠ» с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ сущСствуСт ΠΈΠ»ΠΈ отсутствуСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°
ENOEXEC ExecΒ formatΒ error ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° запуска Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ являСтся Ρ„Π°ΠΉΠ»ΠΎΠΌ допустимого исполняСмого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°
ENOMEM NotΒ enoughΒ space ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (exec(2)) ΠΈΠ»ΠΈ размСщСния памяти (brk(2)) Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ памяти прСвысил максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Π² систСмС
ENOMSG NoΒ messageΒ of desired type ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° получСния сообщСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ сущСствуСт Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (см. Ρ€Π°Π·Π΄Π΅Π» "БообщСния" Π² Π³Π»Π°Π²Π΅ 3)
ENOSPC NoΒ spaceΒ leftΒ on device ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° записи Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΈ отсутствии свободного мСста Π½Π° устройствС (Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС)
ENOSR OutΒ ofΒ streamΒ resources ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ ΠΈΠ»ΠΈ Π³ΠΎΠ»ΠΎΠ²Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ открытия устройства STREAMS. Π­Ρ‚ΠΎ состояниС являСтся Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. ПослС освобоТдСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… рСсурсов Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ процСссами опСрация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ
ENOSTR NotΒ aΒ streamΒ device ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° примСнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ для устройств Ρ‚ΠΈΠΏΠ° STREAMS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ систСмного Π²Ρ‹Π·ΠΎΠ²Π° putmsg(2) ΠΈΠ»ΠΈ getmsg(2)), для устройства Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
ENOTDIR NotΒ aΒ directory Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ имя Ρ„Π°ΠΉΠ»Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΏΡƒΡ‚ΠΈ для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°)
ENOTTY Inappropriate ioctl for device ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° систСмного Π²Ρ‹Π·ΠΎΠ²Π° ioctl(2) для устройства, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ являСтся ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ
EPERM Not owner ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°, способом, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ ΠΈ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π½Ρ‹ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
EPIPE Broken pipe ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° записи Π² ΠΊΠ°Π½Π°Π» (pipe), для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ сущСствуСт процСсса, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅. Π’ этой ситуации процСссу ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ отправляСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ сигнал. Ошибка возвращаСтся ΠΏΡ€ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ сигнала
EROFS Read-onlyΒ file system ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° для устройства (Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы), ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅
ESRCH NoΒ suchΒ process ΠŸΡ€ΠΎΡ†Π΅ΡΡ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ PID Π½Π΅ сущСствуСт Π² систСмС