.TH LIBCOOPGAMMA_CONNECT 3 LIBCOOPGAMMA .SH "NAME" libcoopgamma_connect - Connect to a coopgamma server .SH "SYNOPSIS" .nf #include int libcoopgamma_connect(const char *restrict \fImethod\fP, const char *restrict \fIsite\fP, libcoopgamma_context_t *restrict \fIctx\fP); .fi .P Link with .IR -lcoopgamma . .SH "DESCRIPTION" The .BR libcoopgamma_connect () function connects to the instance coopgamma server for the selected adjustment .I method and .IR site . If the server is not already running, it will be started. If .I method or .I site is .IR NULL , the it will selected automatically. The state of the connection is stored in .IR ctx , which must be initialised but not already connected. .I ctx can be initialised with .BR libcoopgamma_context_initialise (3). .P For the duration of the function call, .I SIGCHLD most neither be ignored nor blocked. It is the user of this library's responsibility to ensure this. The .BR libcoopgamma_connect () function will not temporarily reset handling of .I SIGCHLD itself. .SH "RETURN VALUES" Upon successful completion, the .BR libcoopgamma_connect () function returns 0. On error, -1 is returned and .I errno is set appropriately. .SH "ERRORS" The .BR libcoopgamma_connect () function may fail for any reason specified for .BR libcoopgamma_get_socket_file (3), .BR socket (3), .BR waitpid (3), and .BR connect (3). The function may also fail for any of the following reasons: .TP .B ENAMETOOLONG The pathname of the socket was too long. .TP .B 0 The server failed to initialise. .SH "SEE ALSO" .BR libcoopgamma_get_methods (3), .BR libcoopgamma_get_pid_file (3), .BR libcoopgamma_get_socket_file (3), .BR libcoopgamma_context_initialise (3), .BR libcoopgamma_context_destroy (3), .BR libcoopgamma_set_nonblocking (3), .BR libcoopgamma_get_crtcs_send (3), .BR libcoopgamma_get_gamma_info_send (3), .BR libcoopgamma_get_gamma_send (3), .BR libcoopgamma_set_gamma_send (3)