daemon()

Run a process in the background

Synopsis:

#include <stdlib.h>

int daemon( int nochdir, 
            int noclose );

Arguments:

nochdir
If this argument is 0, the current working directory is changed to the root directory (/).
noclose
If this argument is 0, standard input, standard output, and standard error are redirected to /dev/null.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The daemon() function allows programs to detach themselves from the controlling terminal and run in the background as system daemons.

This function calls fork() and setsid() .

The controlling terminal behaves as in Unix System V, Release 4. An open() on a terminal device not already associated with another session causes the device to become the controlling terminal for that process.

Returns:

Zero for success, or -1 if an error occurs ( errno is set).

Classification:

Legacy Unix

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread No

Caveats:

Currently, daemon() is supported only in single-threaded applications. If you create a thread and then call daemon(), the function returns -1 and sets errno to ENOSYS.

Last modified: 2013-12-23

comments powered by Disqus