name_open()

Объявить имя для соединения с сервером

Прототип:

#include <sys/iofunc.h>
#include <sys/dispatch.h>
int name_open( const char *name,
int flags );

Аргументы:

name
Имя для соединения с сервером.
flags
Флаги, влияющие на поведение функции:
NAME_FLAG_ATTACH_GLOBAL
искать имя глобально, а не локально.

Библиотека:

libc

Описание:

Функция name_open() объявляет name для соединения с сервером. При доступе к ресурсам на другом узле порядок не гарантируется.


Note: Ранее, когда приложение использовало name_open() для соединения с сервером, сервер не получал уведомлений. В данный момент серверу отправляется сообщение _IO_CONNECT с подтипом _IO_CONNECT_OPEN. Серверное приложение должно уметь обрабатывать данное сообщение. Для примера следует смотреть документацию к name_attach().

Возвращаемое значение:

Неотрицательное целое, представляющее идентификатор стороннего соединения (см. ConnectAttach()). Если возникла ошибка, функция возвращает -1, код ошибки записывается в errno.

Коды ошибок:

EACCES
Для части name отсутствует право поиска.
EBADFSYS
При попытке открыть файл оказалось, что файл или часть пути к нему оказались повержденными. Системный сбой, автоматическое восстановление после которого невозможно, произошел во время записи файла или при обновлении директории. Для исправления ситуации следует вызвать соответствующие процедуры системного администрирования прежде, чем продолжить.
EBUSY
Соединение, определяемое name, уже открыто, а дополнительные соединения запрещены.
EINTR
Операция name_open() прервана сигналом.
EISDIR
Указанный путь является директорией.
ELOOP
Слишком большой уровень символических ссылок или префиксов.
EMFILE
Слишком много файловых дескрипторов используется процессом.
ENAMETOOLONG
Длина строки name превышает PATH_MAX, либо часть пути превышает NAME_MAX.
ENFILE
В системе открыто слишком много файлов.
ENOENT
Соединение, определяемое name, не существует.
ENOTDIR
Часть префикса name не является директорией.

Примеры:

См. name_attach().

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

ConnectAttach(), name_attach(), name_detach(), name_close(), open()




Предыдущий раздел: Описание API системной библиотеки