Chinaunix首页 | 论坛 | 博客
  • 博客访问: 144853
  • 博文数量: 69
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 595
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-16 00:00
个人简介

宁可逆流而上与众不同,也不顺风顺水随波逐流

文章分类

全部博文(69)

文章存档

2020年(1)

2018年(9)

2017年(43)

2016年(16)

我的朋友

分类: C/C++

2017-02-19 21:07:13

创建进程函数:fork(),vfork()
一般创建进程是为了让子进程完成新的工作,通过exec函数簇使子进程调用新的函数并执行:
  1. int execl(const char*pathname,const char*arg0,.../*(char*)0*/)
  2. int execv(const char*pathname,char*const arg[])
  3. int execle(const char*pathname,const char*arg0,.../*(char*)0*/,char*const envp[])
  4. int execve(const char*pathname,char*const arg[],char*const envp[])
  5. int execlp(const char*filename,const char*arg0,.../*(char*)0*/)
  6. int execvp(const char*filename,char*const envp[])
  7.                               //出错返回-1,成功不返回值
有时候一个进程需要等待另一个进程完成工作才能继续工作,这通过如下函数实现:

点击(此处)折叠或打开

  1. #include<sys/wait.h>

  2. pid_t wait(int*statloc)
  3. pid_t waitpid(pid_t pid,int*statloc,int options)
  4.                                            //成功返回进程id,0(这是waitpid可能返回的值,一般wait函数都会阻塞调用它的进程直到子进程终止,而waitpid可以不阻塞,此时返回的就是0),出错返回-1

  5. 另外还有wait3和wait4函数,以后再添加
进程正常终止方式如下:
    在main中执行return语句
    调用exit()函数,它会调用终止处理程序并刷新和关闭标准I/O流
    调用_exit或_Exit函数,它不调用终止处理程序,是否处理I/O流取决于实现
    进程的最后一个线程在其启动例程中执行返回语句
    进程的最后一个线程调用pthread_exit()函数    
进程异常终止方式如下:
    调用abort,它产生SIGABRT信号
    当进程接收到某些信号时
    最后一个线程对取消请求作出响应

阅读(375) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~