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注册的函数
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注册的函数
相关文章推荐
- linux信号处理、killall、SIGALRM、sigaction函数和结构体、向进程发送信号
- Linux进程理解与实践(四)wait函数处理僵尸进程
- Linux多线程环境下 关于进程线程终止函数总结
- linux信号处理、killall、SIGALRM、sigaction函数和结构体、向进程发送信号
- [Linux进程]使用atexit登记终止处理函数
- linux进程终止处理函数
- 一个关于linux进程函数kill的问题
- Linux向进程发送信号及执行信号处理函数的时机
- Linux中关于进程方面常用函数的区别
- Linux0.11 由进程睡眠函数sleep_on()中的堆栈变量tmp引发的思考 关于进程内核堆栈
- linux 下面字符串处理函数实现 抄来看一下 抄自[http://blog.csdn.net/BeWithLei/article/details/1719242]
- 关于 Linux 中 signal 函数信号处理的讨论
- Linux进程理解与实践(四)wait函数处理僵尸进程
- [置顶] Linux高编之进程--------fork函数的同步与异步(兄弟子进程和父子孙进程示列)
- linux EHCI DRIVER之中断处理函数ehci_irq()分析(一)
- 关于VS中各种不安全函数的处理办法
- 关于僵尸进程处理的链接
- linux进程状态D和Z的处理
- Linux与Windows关于标准输入中涉及EOF的处理方式
- Python——一些关于处理列表的函数