Unix Man (Справочное руководство)


WRITE(2) - часть 2


Для псевдоустройств, если флаг O_NDELAY не установлен и поток не может принять данные (очередь записи полна в силу внутренних причин), записывающий процесс откладывается до тех пор, пока поток не будет готов к приему данных. Установленный флаг O_NDELAY предотвращает откладывание, и в описанном случае вызов write завершается неудачей. Если флаг O_NDELAY установлен и в момент, когда случилось событие, в результате которого поток перестал принимать данные, часть буфера записана, выполнение системного вызова write завершается и выдается количество записанных байт.

Системный вызов write завершается неудачей и указатель текущей позиции файла остается без изменений, если выполнено хотя бы одно из следующих условий:

[EAGAIN] Установлены флаги учета блокировки файла и O_NDELAY, и требуемый сегмент файла заблокирован. [EAGAIN] Общее количество системной памяти, предоставленной для бесструктурного ввода/вывода, временно оказалось недостаточным. [EAGAIN] При установленном флаге O_NDELAY попытка записи в поток, который не может принять данные. [EBADF] Аргумент fildes не является корректным дескриптором файла, открытого для записи. [EDEADLK] Попытка ожидания записи приводит к тупику. [EFAULT] Аргумент buf указывает за пределы отведенного процессу адресного пространства. [EFBIG] Превышение допустимого размера файлов [см. ]. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [EINVAL] Попытка записи в поток, который мультиплексируется. [ENOLCK] Нет свободного места в системной таблице блокировок. [ENOLINK] Fildes является дескриптором файла на удаленном компьютере, связи с которым в данный момент нет. [ENOSPC] При попытке записи в обычный файл нет свободного места на устройстве. [ENXIO] Зависание при записи в поток stream. [EPIPE или сигнал SIGPIPE] Попытка записи в канал, который не открыт каким-либо процессом на чтение. [ERANGE] Попытка записи в поток при значении nbyte, выходящем за пределы допустимых размеров пакета, при ненулевом минимально допустимом размере пакета.




Начало  Назад  Вперед



Книжный магазин