1.exec函数族
在进程创建成功后,会有两种情况:(1)多任务,父子进程做的事相同,名称相同;(2)父子进程做的事不同,名称也不同,如:shell系统——bash,在这里调用了exec函数族,作用是启动(运行)了一个新的程序,本质是在函数调用后用新的镜像程序替代当下的程序。
2.exec函数的种类
int execl(const char *path, const char *arg, ...) —— execl(“路径”,“程序名”,“参数”,NULL);
int execv(const char *path,char *const argv[ ]) —— execv(“路径”,arg);
在这里将“程序名”,“参数”,NULL放进arg[ ]内,然后放到函数中;
execlp和execvp,“p”表示环境变量path,不需要在函数传参时写路径;
execle和execvpe,“e”表示环境变量environ,可以调用extern char **environ作环境变量,在传参的最后要加环境变量environ;
3.free函数
free函数的功能是释放malloc函数开辟的内存空间,回收资源,一般形式是:void free(void* p);
函数的返回值是空值,函数的参数是无类型指针,指向由malloc函数开辟的内存空间。
4.exit和_exit
_exit会立即进入系统调用,exit会先执行一些清除处理的程序,释放空间,然后在进入系统调用
5.wait函数
wait函数可以用来结束僵尸态的子进程,回收资源;