int QP_ipc_create_servant(host, QP_save_state, QP_outfile)
         char *host, *QP_save_state, *QP_outfile;

host is the name of the machine on which the Prolog servant is to run. If host is the string "local", then the servant is run on the same machine as the master. If host is the empty string "", the servant is run on the local machine but pipes are used for the interprocess communication rather than sockets, which are used otherwise.

QP_save_state is the name of a file containing a Prolog saved state that was created by save_ipc_servant/1. This saved state must contain the definitions of the predicates to be called and the external/3 facts that specify the interface. If QP_save_state is not an absolute filename, it will be sought, on the specified machine, in the sequence of directories specified by your PATH environment variable. If this search fails, the current working directory will be tried, if it exists on that machine.

QP_outfile is the name of the file to which to route the Prolog servant's output (stdout and stderr). If QP_outfile is the string "user", then the servant's output is routed to the C program's stdout. If it is the empty string "", the servant's stdout stream is discarded, and its stderr stream is routed to the master's stderr.

This routine returns the file descriptor of the connecting socket if the connection was made successfully and -1 if not. This routine starts the Prolog servant and may take several seconds to complete.