创建进程函数:fork(),vfork()
一般创建进程是为了让子进程完成新的工作,通过exec函数簇使子进程调用新的函数并执行:
-
int execl(const char*pathname,const char*arg0,.../*(char*)0*/)
-
int execv(const char*pathname,char*const arg[])
-
int execle(const char*pathname,const char*arg0,.../*(char*)0*/,char*const envp[])
-
int execve(const char*pathname,char*const arg[],char*const envp[])
-
int execlp(const char*filename,const char*arg0,.../*(char*)0*/)
-
int execvp(const char*filename,char*const envp[])
-
//出错返回-1,成功不返回值
有时候一个进程需要
等待另一个进程完成工作才能继续工作,这通过如下函数实现:
-
#include<sys/wait.h>
-
-
pid_t wait(int*statloc)
-
pid_t waitpid(pid_t pid,int*statloc,int options)
-
//成功返回进程id,0(这是waitpid可能返回的值,一般wait函数都会阻塞调用它的进程直到子进程终止,而waitpid可以不阻塞,此时返回的就是0),出错返回-1
-
-
另外还有wait3和wait4函数,以后再添加
进程正常
终止方式如下:
在main中执行return语句
调用exit()函数,它会调用终止处理程序并刷新和关闭标准I/O流
调用_exit或_Exit函数,它不调用终止处理程序,是否处理I/O流取决于实现
进程的最后一个线程在其启动例程中执行返回语句
进程的最后一个线程调用pthread_exit()函数
进程异常终止方式如下:
调用abort,它产生SIGABRT信号
当进程接收到某些信号时
最后一个线程对取消请求作出响应
阅读(402) | 评论(0) | 转发(0) |