Присоединить объект
#include <ha/ham.h>ham_entity_t * ham_attach( const char *ename,int nd,pid_t pid,const char *line,unsigned flags );ham_entity_t * ham_attach_node( const char *ename,const char *nodename,pid_t pid,const char *line,unsigned flags );
![]() | Поскольку идентификаторы узлов являются временными объектами, следует получить значение nd непосредственно перед вызовом, используя netmgr_strtond() или другую функцию, которая преобразует nodename в идентификаторы узлов. |
или\'path with space\'
также допустимо:\"path with space\",
Это будет рассматриваться как"\'path with space\' arg1 arg2 \"arg3 with space\"".
"path with space" -> patharg1 = arg1arg2 = arg2arg3 = "arg3 with space".
libham
Функция ham_attach() используется для присоединения объекта к HAM. Функция ham_attach_node() используется, когда nodename используется для указания удаленного HAM вместо идентификатора узла (nd). Объектом может быть любой процесс в системе. Данная функция используется для того, чтобы:
После того, как объект была присоединен, к нему можно добавлять условия и действия. Для произвольных процессов HAM может отслеживать:
![]() | Поскольку функции ham_attach*() создают соединение с HAM, для удобства они также выполняют и вызов ham_connect(). Таким образом, любой клиент, который делает вызов ham_attach(), не должен вызывать ham_connect() или ham_disconnect() до и после вызова (). |
/
) или имеет значение NULL
. Переданный pid ≤ 0, однако line не был предоставлен. _POSIX_PATH_MAX
(определено в <limits.h>
). Обратите внимание, что общая длина имени объекта/условия/действия также ограничена _POSIX_PATH_MAX
. В дополнение к вышеуказанным ошибкам HAM возвращает любую ошибку, с которой он сталкивается при обслуживании данного запроса.
ЗОСРВ «Нейтрино»
ham_connect(), ham_detach(), ham_detach_self(), ham_disconnect(), procmgr_daemon()
Предыдущий раздел: Менеджер высокой готовности (HAM)