子进程——当用户运行一个程序时,该程序可以被另一个程序运行,该程序就叫做子进程。运行该子进程的程序叫做父进程。当子进程结束时,父进程继续时,子进程的执行称为派生;如果子进程替代父进程,则称为覆盖。C语言运行时程序库提供了两种类型的函数:spawn和exec。
#include <process.h>
派生一个子进程 child代表子进程中的可执行文件名,默认路径在debug时为工程文件夹
int spawnl(int mode, char *child, char *arg0,..., char * argn, NULL);
int spawnle(int mode, char *child, char *arg0,..., char * argn, NULL, char *environ);
int spawnlp(int mode, char *child, char *arg0,..., char * argn, NULL);
int spawnlpe(int mode, char *child, char *arg0,..., char * argn, NULL, char *environ);
int spawnv(int mode, char *child, char *argv[ ] );
int spawnve(int mode, char *child, char *argv[ ] , char *environ);
int spawnvp(int mode, char *child, char *argv[ ] );
int spawnvpe(int mode, char *child, char *argv[ ] , char *environ);
注:当子进程覆盖父进程时,用 execl 替代 spawnl,并舍弃第一个参数mode。
#include <process.h>
派生一个子进程 child代表子进程中的可执行文件名,默认路径在debug时为工程文件夹
int spawnl(int mode, char *child, char *arg0,..., char * argn, NULL);
int spawnle(int mode, char *child, char *arg0,..., char * argn, NULL, char *environ);
int spawnlp(int mode, char *child, char *arg0,..., char * argn, NULL);
int spawnlpe(int mode, char *child, char *arg0,..., char * argn, NULL, char *environ);
int spawnv(int mode, char *child, char *argv[ ] );
int spawnve(int mode, char *child, char *argv[ ] , char *environ);
int spawnvp(int mode, char *child, char *argv[ ] );
int spawnvpe(int mode, char *child, char *argv[ ] , char *environ);
注:当子进程覆盖父进程时,用 execl 替代 spawnl,并舍弃第一个参数mode。