23:07 man 3 mkfifo |
НАЗВАНИЕ mkfifo - создает особый FIFO-файл (именованный канал) СИНТАКСИС #include #include int mkfifo(const char *pathname, mode_t mode); ОПИСАНИЕ Функция mkfifo создает особый FIFO-файл с названием pathname. mode определяет уровни доступа для FIFO. Они меняются с помощью процесса umask обычным путем: уровни доступа для созданного файла есть (mode & ~umask). Особый FIFO-файл похож на обычный канал, только он создается другим путем. Вместо того, чтобы быть анонимным каналом связи, особый FIFO-файл подключается к системе с помощью вызова mkfifo. Как только таким образом создан особый FIFO-файл, любой процесс может окрыть его для чтения или записи так же, как и любой обычный файл. Тем не менее, он должен быть открытым в обоих состояниях одновременно, прежде чем Вы захотите провести в нем операции ввода или вывода. Однако, открытие FIFO для чтения обычно блокирует его до тех пор, пока другой процесс не откроет этот же FIFO для записи, и наоборот. Смотрите fifo(4) для работы с особым файлом FIFO без его блокирования. ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ Обычно возвращаемое значение при успешном завершении работы mkfifo равно 0. В случае ошибки возвращается -1, при этом значение переменной errno изменяется соответственно ошибке. НАЙДЕННЫЕ ОШИБКИ EACCES (один из каталогов в pathname не разрешает доступ на поиск или выполнение); EEXIST (pathname уже существует); ENAMETOOLONG (либо общая длина pathname больше, чем PATH_MAX, либо компонент "имя файла" имеет большую по сравнению с NAME_MAX длину. В системе GNU не существует предела общей длины имени файла, но некоторые файловые системы могут установить пределы длины данных компонентов.); ENOENT (компонента каталога pathname не существует или он является "разорванной" символьной ссылкой); ENOSPC (в каталоге или файловой системе недостаточно места для нового файла); ENOTDIR (компонент, указанный как каталог в pathname, фактически не является каталогом); EROFS (pathname обращается к файловой системе, доступной только для чтения). СООТВЕТСТВИЕ СТАНДАРТАМ POSIX.1 СМ. ТАКЖЕ mkfifo(1), read(2), write(2), open(2), close(2), stat(2), umask(2), fifo(4) |
|
Всего комментариев: 0 | |