spawn()函数(在“spawn.h”中声明)来自哪里?

时间:2012-08-21 21:39:41

标签: c spawn

我无法编译这个简单的程序

#include<stdio.h>
#include<conio.h>
#include<spawn.h>
#include<process.h>

int main(){
    printf("Spawning new process...\n");
    spawnl(P_WAIT,"curl","www.google.co.in",NULL);
    system("cls");
    printf("Program execution completed somehow!\n");
    getch();
    return 0;
}

我尝试过使用以下命令:

g++ filename.cpp -l -o filename.cpp

结果:ld.exe cannot find -l exit with status 1

g++ filename.cpp -o filename

结果:error: spawn.h No such file or directory.

我的MinGW安装有问题吗?我使用的是Windows 7 32位和MinGW。

1 个答案:

答案 0 :(得分:3)

spawn.h不是标准的C / C ++标头。 POSIX定义了一个非标准<spawn.h>标头,但它没有定义spawnl函数,而且Windows也不是符合POSIX标准的系统。

Windows确实在<process.h>中定义了_spawnl功能,因此最简单的方法就是删除包含<spawn.h>并使用它。您还可以重写代码以使用Windows函数CreateProcess