[英]warning: implicit declaration of function 'daemon'
編譯程序時收到此警告。 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 daemon
:
glibc的功能測試宏要求(請參閱feature_test_macros(7)):
daemon():_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE <500)
在Linux上,通過#define
daemon()
_XOPEN_SOURCE
_BSD_SOURCE
通過做
#define _XOPEN_SOURCE
要么
#define _BSD_SOURCE
在#include
之前
#include <unistd.h>
或通過將-D _XOPEN_SOURCE
或-D _BSD_SOURCE
添加到編譯命令中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.