Linux服务器编程——Linux系统编程之进程

来源:互联网 发布:qt5.8连接mysql数据库 编辑:程序博客网 时间:2024/06/05 08:12

进程的基本概念

参考小何讲进程

环境变量

Linux是多任务多用户的开源操作系统。环境变量:操作系统中用来制定操作系统运行环境的一些参数。通常具有以下特征:

1、字符串

2、统一的格式  名=值[;值]

3、用来描述进程环境信息

常见的环境变量

PATH:可执行文件的路径

              输出方式  echo $PATH

SHELL:记录当前目录解析器

HOME:当前home目录

LANG:语言

TERM:终端类型

注意:要在C语言程序中使用环境变量,必须extern char **environ;

环境变量操作函数

getenv函数作用:获取环境变量值头文件#include <stdlib.h>函数原型char* getenv(const char* name)char* secure_getenv(const char* name)  _GNU_SOURCEsetenv函数作用:设置或添加环境变量值 头文件#include <stdlib.h>函数原型int setenv(const char* name,const char* value, int overwrite)overwrite:          非0  改变           0   不改变int unsetenv(const char* name)


进程控制

fork函数作用:创建子进程头文件#include <unistd.h>函数原型pid_t fork(void)返回值:1、返回子进程ID >0  (父进程)2、0   创建成功    (子进程)

getpid/getppid函数作用:得到当前进程的ID号头文件#include <sys/types.h>#include <unistd.h>函数模型pid_t getpid(void)pid_t getppid(void)

注意:父子进程之间共享的只有文件描述符与mmap建立的映射区

exec函数族调用exec函数不会创建新进程。int execl(const char* path, const char* arg,...)作用:加载一个进程,通过路径名path:路径arg:参数int execlp(const char* file, const char* arg,...)作用:加载一个进程,借助PAYH环境变量,通常用来执行系统命令如ls,cat返回值:-1,失败;        无返回,成功参数file:要加载的程序的名字参数arg:argv[0]程序名最后一定要加 NULL 参数int execle(const char* path, const char* arg,...,char* const envp[])需使用环境变量int execv(const char* path, char * const argv[])int execvp(const char* file,char* const argv[])int execve(const char * path, char* const envp[])

回收子进程

孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程领养孤儿进程

僵尸进程:进程终止,父进程尚未回收,子进程残留资源放于内核,变成僵尸进程。不能用kill终止僵尸进程。

wait函数作用1、阻塞等待子进程退出2、回收子进程残留资源3、获取子进程结束状态头文件#include <sys/types.h>#include <sys/wait.h>函数原型pid_t wait(int *status);status:传入参数,保存子进程的退出状态       1、WIFEXITED(status)    非0      进程正常结束          WEXITSTATUS(status)   获取进程退出状态       2、WIFSIGNALED(status)   非0     进程异常终止          WTERMSIG(status)   取得使进程终止那个信号的编号       3、WIFSTOPPED(status)     非0     进程处于暂停状态          WSTOPSIG(status)   取得使进程暂停的那个信号的编号          WIFCONTINUED(status)   真   进程暂停后已经继续执行返回值:>0    清理掉的子进程ID        -1    失败pid_t waitpid(pid_t pid, int* status ,int options)作用:同wait 但可以指定pid进程清理,可以不阻塞pid:    >0   回收指定进程    -1   回收所有进程      相当于wait      0   回收和调用waitpid一个组的所有子进程    <-1  回收指定进程组内的任一子进程返回0:参数3为WNOHANG,且子进程正在运行

阅读全文
0 0
原创粉丝点击