您的位置:首页 > 运维架构 > Linux

linux下面关于进程处理函数

2013-08-28 17:45 190 查看
在linux中,进程表示中最重要的属性是进程ID(PID),和父进程ID(PPID),进程ID是一个正整数,唯一标志一个进程,由某个进程创建的新进场称为其子进程,穿件子进程的进程称为父进程。

1:getpid函数和getppid函数:获取进程ID和父进程ID

    #include <sys/types.h>

    #include <unistd.h>

    pid_t getpid(void)

    pid_t getppid(void)

    函数返回值,返回当前进程ID,pid_t这种数据类型的本质是一个整数

2:fork函数:建立子进程

    #include <sys/types.h>

    #include <unistd.h>

    pid_t fork(void)

    fork

    fork函数用于从已存的进程中穿件一个新的进程,刺心的进程称为子进程,而原进程称为父进程,在运行的程序中通过检查fork函数的返回值可以得知该进程是父进程,还是子进程

    如果执行成功,父进程得到的返回值是子进程的进程号,儿子进程则返回0,如果执行失败,讲返回-1

3:sleep()和usleep()会令目前的进程展厅,知道达到参数seconds所指定的时间或是被信号所终端

    #include <unistd.h>

    unsigned int sleep(unsigned inr seconds)

    函数返回值,若进程暂停到参数seconds所指定的时间,则返回0,若有信号终端则返回剩余秒数 usleep是以微妙计算的

4:extc函数族:找到可执行文件

    #include <unistd,h>

    int execl(const char *path,const char *arg)

    int execlp(const char *file,const char *arg)

    int execle (const char *path,const char *arg,...,char *const envp[1])

    int execv(const char *path,char *const argv[])

    int execvp(const char *file,char *const argv[])

    int execve (const char *filename ,char *const argv[],char *const envp[])

    exec被调用时会替换调用它的进程,直接返回到调用它的进程的父进程,如果出错,则返回-1并且设置errno,也就是说在调用进程内部执行一个可执行文件,在调用exec进程的实体中,包括代码段,数据段和堆栈登都已经被新的内同取代,只有进程ID是不变的,exec函数族的函数执行成功后不会返回,exec函数族包括6哥函数

    这六个函数的第一个参数均为一个字符串,在execlp和execvp两个函数中表示所执行的程序的名称,在其它的函数中表示所执行程序的路径,第二个参数为参数列表,execl,execlp,ececle使用null为结束的字符串,exevl,execvp和execve使用以字符串的数组,exevle和execve两个函数还有第三个参数,表示传入的环境变量

    execl用来执行一个程序文件,文件的路径使用参数path字符串表示

    execlp会从path环境变量所指的目录中查找符合参数file的文件名,后面的参数与execl想通

    execle函数基本和execl函数想通,正价参数envp,这个参数是表示需要传入参数的环境变量

    execv函数用来执行参数path字符串所代表的文件路径,与execl不同的地方在于execve指需要两个参数,第二个参数利用数组指针来传递给执行文件

    execvp函数会从path环境变量所指的目录中查找符合参数file的文件名,其它的参数和execv想痛

    execve函数基本参数和execv函数想通,正价了参数envp表示需要传入的环境标量

5:_exit函数和_Exit函数:结束进程执行

    第一个函数用来立刻借宿目前进程的执行,并把参数status返回给父进程,关闭未关闭的文件,此函数调用后不会返回,并且会传递SIGCHLD信号给父进程,父进程可以由wait函数得到子进程借宿状态,

    #include《unistd.h》

    #void _exit (int status) status表示退出进程的退出状态

    第二个函数是另外一个函数,其实用的方法和第一个完全想通

    与第一个函数类型的还有一个叫atext函数,这个函数在c语言标志的库函数,第一在stdlib,h中,她的作用就是可以注册一个函数,这个函数在本进程退出的时候会被调用,从而进程一些退出钱的清理炒作,但是第一个函数不会处理atexit注册的函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: