八、进程相关函数

相关函数: abort

头文件   #include <stdlib.h>

函数原型: void abort(void);

函数说明: 引起进程异常终止,此时所有已打开的文件流会自动关闭,缓冲区里的数据也会自动写回

返回值  

相关函数: assert

头文件   #include <assert.h>

函数原型: void assert(int expression);

函数说明: 该函数会判断参数expression是否成立。若不成立则会显示错误信息并调用abort来终止进程

返回值  

相关函数: exit

头文件   #include <stdlib.h>

函数原型: void exit(int status);

函数说明: 用来正常终止目前进程的执行,并把参数status返回给父进程。进程所有的缓冲区数据会自动写回并关闭所有的文件

返回值  

相关函数: _exit

头文件   #include <unistd.h>

函数原型: void _exit(int status);

函数说明: 用来立刻终止目前进程的执行,并把参数status返回给父进程。但不会处理缓冲区数据和打开的文件

返回值  

相关函数: fork

头文件   #include <unistd.h>

函数原型: pid_t fork(void);

函数说明: 创建一个新的子进程,子进程会复制父进程的数据和堆栈空间,并继承父进程的用户代码、组代码、环境变量、已打开的文件等。

返回值   若成功在父进程返回新创建的子进程的进程号,而在子进程中返回0;如果失败则返回-1

相关函数: getpid

头文件   #include <unistd.h>

函数原型: pid_t getpid(void);

函数说明: 取得当前进程的进程号

返回值   当前进程的进程号

相关函数: getppid

头文件   #include <unistd.h>

函数原型: pid_t getppid(void);

函数说明: 取得当前进程的父进程的进程号

返回值   当前进程父进程的进程号

相关函数: system

头文件   #include <stdlib.h>

函数原型: int system(const char *string);

函数说明: 该函数会调用fork创建子进程,由子进程来执行参数string代表的命令

返回值   调用成功时会返回执行命令后的返回值,否则要检查errno来确定原因

相关函数: wait

头文件   #include <sys/types.h>

           #include <sys/wait.h>

函数原型: pid_t wait(int *status);

函数说明: 暂停当前进程的执行,直到有信号来或子进程结束。如果在调用wait时子进程已经结束,则会立刻返回。子进程的结束状态值由参数status返回

返回值   结束的子进程的进程号

相关函数: waitpid

头文件   #include <sys/types.h>

           #include <sys/wait.h>

函数原型: pid_t waitpid(pid_t pid, int *status, int options);

函数说明: 暂停当前进程的执行,直到有信号来或子进程结束。如果在调用waitpid时子进程已经结束,则会立刻返回。子进程的结束状态值由参数status返回

           参数pid含义如下:

               pid < -1    等待进程组号等于pid绝对值的任何子进程

               pid = -1    等待任何子进程,相当于wait

               pid = 0     等待进程组号与当前进程相同的任何子进程

               pid > 0     等待进程号为pid的子进程

           参数options含义如下:

0 阻塞父进程,等待子进程退出

                WNOHANG    如果没有子进程退出立刻返回

              WUNTRACED    如果子进程进入暂停状态则马上返回

返回值   如果执行成功则返回子进程号,如果有错误发生则返回-1,失败原因保存于errno

相关函数: execl

头文件   #include <unistd.h>

函数原型: int execl(const char *path, const char *arg, );

函数说明: execl用来执行参数path字符串所代表的文件,后面的参数代表执行该文件时传递过去的参数argv[0]argv[1],最后一个参数必须是NULL

返回值   若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno

相关函数: execle

头文件   #include <unistd.h>

函数原型: int execle(const char *path, const char *arg, , char *const envp[]);

函数说明: execle用来执行参数path字符串所代表的文件,后面的参数代表执行该文件时传递过去的参数argv[0]argv[1]…,最后一个参数必须指向一个新的环境变量数组,此数组会成为新执行进程的环境变量

返回值   若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno

相关函数: execlp

头文件   #include <unistd.h>

函数原型: int execlp(const char *file, const char *arg, );

函数说明: execlp会从PATH环境变量包含的路径中查找符合参数file的文件名,找到后执行该文件,然后将后面的参数当作argv[0]argv[1],最后一个参数必须是NULL

返回值   若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno

相关函数: execv

头文件   #include <unistd.h>

函数原型: int execv(const char *path, char *const argv[]);

函数说明: execl用来执行参数path字符串所代表的文件,参数argv是一个指针数组,相当于execl中后面的多个参数都用指针数组传递给执行文件

返回值   若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno

相关函数: execve

头文件   #include <unistd.h>

函数原型: int execve(const char *path, char *const argv[], char *const envp[]);

函数说明: execve用来执行参数path字符串所代表的文件,第二个参数利用指针数组来传递给执行文件,最后一个参数传递新的环境变量

返回值   若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno

相关函数: execvp

头文件   #include <unistd.h>

函数原型: int execvp(const char *file, char *const argv[]);

函数说明: execvp从环境变量PATH包含的路径里查找文件file,找到后执行该文件,然后将第二个参数argv传递给要执行的文件

返回值   若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno

posted @   cnetsa  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示