我在编译我的程序时收到此警告。 daemon() 在 unistd.h 中声明并包含在内。如何解决这个问题或让它消失?
错误:
dcron.c: In function 'main':
dcron.c:35:4: warning: implicit declaration of function 'daemon' [-Wimplicit-function-declaration]
if (daemon(1, 0) != 0) {
^
部分程序:
if (daemon(1, 0) != 0) {
fprintf(stderr, "error: failed to daemonize\n");
syslog(LOG_NOTICE, "error: failed to daemonize");
return 1;
}
设置: gcc4.8.2, glibc2.19 CFLAGS=-std=c99 -Wall -Wpedantic -Wextra
最佳答案
您需要添加相关头文件并启用_BSD_SOURCE
特性测试宏:
#define _BSD_SOURCE
#include <unistd.h>
来自 man 3 守护程序
:
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
daemon(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
关于c - 警告 : implicit declaration of function 'daemon' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24161945/