vfork()隐式声明

时间:2014-10-29 17:09:54

标签: c vfork

我使用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()。 我不知道这是什么意思或我如何解决这个问题。

3 个答案:

答案 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可以解决此问题。