?? dfork.h
字號:
#ifndef foodaemonforkhfoo#define foodaemonforkhfoo/* $Id: dfork.h 116 2007-06-11 15:16:09Z lennart $ *//* * This file is part of libdaemon. * * libdaemon is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * libdaemon is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with libdaemon; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA */#include <sys/types.h>#ifdef __cplusplusextern "C" {#endif /** \mainpage libdaemon * * libdaemon * * For a brief explanation of libdaemons's purpose, have a look on the * README file. Thank you! * *//** \example testd.c * This is an example for the usage of libdaemon *//** \file * * 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. *//** 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. * @return 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. */pid_t daemon_fork(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. * @return zero on success, nonzero on failure. */int daemon_retval_init(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(). */void daemon_retval_done(void);/** 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. * * @param timeout Thetimeout in seconds * @return The integer passed daemon_retval_send() in the daemon process, or -1 on failure. */int daemon_retval_wait(int timeout);/** 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. @param s The * integer to pass to daemon_retval_wait() in the parent process * @return Zero on success, nonzero on failure. */int daemon_retval_send(int s);/** Close all file descriptors except those passed. List needs to be * terminated by -1. FDs 0, 1, 2 will be kept open anyway. */int daemon_close_all(int except_fd, ...);/** Same as daemon_close_all but takes an array of fds, terminated by -1 */int daemon_close_allv(const int except_fds[]);#ifdef __cplusplus}#endif#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -