man dfork.h (Fonctions bibliothèques) - Contains an API for doing a daemonizing fork().

NAME

dfork.h - Contains an API for doing a daemonizing fork().

SYNOPSIS



#include <sys/types.h>

Functions

pid_t daemon_fork (void)

Does a daemonizing fork(). int daemon_retval_init (void)

Allocate and initialize resources required by the daemon_retval_xxx() functions. void daemon_retval_done (void)

Frees the resources allocated by daemon_retval_init(). int daemon_retval_wait (int timeout)

Return the value sent by the child via the daemon_retval_send() function, but wait only the specified number of seconds before timing out and returning a negative number. int daemon_retval_send (int s)

Send the specified integer to the parent process.

Detailed Description

Contains an API for doing a daemonizing fork().

You may daemonize by calling daemon_fork(), a function similar to the plain fork(). If you want to return a return value of the initialization procedure of the child from the parent, you may use the daemon_retval_xxx() functions.

Definition in file dfork.h.

Function Documentation

pid_t daemon_fork (void)

Does a daemonizing fork().

For the new daemon process STDIN, STDOUT, STDERR are connected to /dev/null, the process is a session leader, the current directory is changed to /, the umask is set to 777.

Returns: On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, -1 will be returned in the parent's context, no child process will be created, and errno will be set appropriately.

Examples: testd.c.

void daemon_retval_done (void)

Frees the resources allocated by daemon_retval_init().

This should be called if neither daemon_retval_wait() nor daemon_retval_send() is called in the current process. The resources allocated by daemon_retval_init() should be freed in both parent and daemon process. This may be achieved by using daemon_retval_wait() resp. daemon_retval_send(), or by using daemon_retval_done().

Examples: testd.c.

int daemon_retval_init (void)

Allocate and initialize resources required by the daemon_retval_xxx() functions.

These functions allow the child to send a value to the parent after completing its initialisation. Call this in the parent before forking.

Returns: zero on success, nonzero on failure.

Examples: testd.c.

int daemon_retval_send (int s)

Send the specified integer to the parent process.

Do not send -1 because this signifies a library error. Should be called just once from the daemon process only. A subsequent call to daemon_retval_done() in the daemon is ignored.

Parameters: s The integer to pass to daemon_retval_wait() in the parent process

Returns: Zero on success, nonzero on failure.

Examples: testd.c.

int daemon_retval_wait (int timeout)

Return the value sent by the child via the daemon_retval_send() function, but wait only the specified number of seconds before timing out and returning a negative number.

Should be called just once from the parent process only. A subsequent call to daemon_retval_done() in the parent is ignored.

Parameters: timeout Thetimeout in seconds

Returns: The integer passed daemon_retval_send() in the daemon process, or -1 on failure.

Examples: testd.c.

Author

Generated automatically by Doxygen for libdaemon from the source code.