我使用vfork()在C中工作。我的程序工作正常,但我有关于隐式声明的警告。
我的代码:
if(vfork()==0){
...
}
我的警告是:
隐含的功能声明' vfork' [-Wimplicit-function-declaration] if(vfork()== 0){^
我包括那些:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/wait.h>
#include <stdlib.h>
如果我使用fork()而不是vfork()警告消失了。 Soo问题只是我程序中的vfork()。 我不知道这是什么意思或我如何解决这个问题。
答案 0 :(得分:2)
您需要包含以下两个标题:
#include <sys/types.h>
#include <unistd.h>
此外,在程序开头添加此行:
#define _BSD_SOURCE
答案 1 :(得分:0)
如果您已经拥有所需的包含文件,则根据您的系统版本,您可能需要定义一些功能测试宏。请参阅系统文档(类似于unix的系统上的man vfork
)
答案 2 :(得分:0)
加上Igor的答案,请确保您未针对C99进行编译。 clang给我一个错误“函数'vfork'的隐式声明在C99中无效”,并且从参数中删除-std=c99
可以解决此问题。