我正在制作这些内容:
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
但仍然得到这个警告。
答案 0 :(得分:9)
您可能正在将“-ansi -Wall”开关传递给gcc编译器。 如果不需要,可以删除“-ansi”,否则尝试设置正确的功能定义宏。
类似的东西:
#define _POSIX_SOURCE
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>
#include <sys/wait.h>
答案 1 :(得分:1)
您也可以通过在gcc中添加此标志来在编译时定义它。
-D_POSIX_C_SOURCE
例如:
-g -D_POSIX_C_SOURCE -Wall -std=c99
答案 2 :(得分:0)
根据kill(2) Linux 手册页,_POSIX_C_SOURCE
必须在任何包含之前#define
d 才能通过<signal.h>
包含函数kill() 的原型如果您使用的是 glibc。
您的代码可能会以任何一种方式编译,因为无论定义如何,二进制文件都可用于链接,但这是根据文档消除此警告的正确方法。