我是一名大学生,我试图让 fork 命令运行到以下程序中,但由于某种原因,当我在 Windows 上编译它时,它给了我这个错误
warning: implicit declaration of function 'fork' [-Wimplicit-function-declaration] 32 | pid1=fork();
。
#include <stdio.h>
#include <unistd.h>
int main(){
int pid1,pid2,pid3,pid4,pid5;
pid1=fork();
if (pid1 == 0) pid2 = fork();
else
pid3=fork();
if (pid3!=0){
pid4=fork();
if (pid4!=0)
pid5=fork();
}
printf("this is my pid: %d",getpid());
return 0;
}
(我包含了unists头文件,因为除非我包含它,否则我的linux虚拟机不会运行代码,再次不知道为什么,因为据我所知,fork命令应该包含在stdio文件中)
奇怪的是,当我尝试将它编译到 Linux 中时,由于某种原因它工作得很好。所以我猜这与我的编译器有关,但我不知道到底是什么,所以我希望有人可以帮助我解决这个问题。
我知道 fork 命令应该包含在 stdio 文件中
不,它不应该包含在
stdio.h
头文件中。 ISO C 标准中未提及 fork()
。它是 POSIX 扩展,存在于类 UNIX 操作系统上。
fork()
不是 Windows C API 的一部分,unistd.h
也不是。