多进程程序设计

一。多进程编程

  1.函数学习

    (1).创建进程

      1.

       函数名        fork

       函数原型    pid_t fork(void)

       函数功能    创建一个子进程

       所属头文件   <unistd.h>

       返回值     成功时:在父进程中返回子进程的pid

                     在子进程中返回是0

               失败时:子进程返回的-1

       参数说明    无参数

      2.      

       函数名        vfork

       函数原型    pid_t vfork(void)

       函数功能    创建一个子进程并阻塞父进程

       所属头文件   <sys/types.h> <unistd.h>

       返回值     成功时:在父进程中返回子进程的pid

                     在子进程中返回是0

               失败时:子进程返回的-1

       参数说明    无参数

      3.

        #include <unistd.h>
        #include <stdio.h>

        void main(void)
        {
          pid_t pid;
          int count = 0;
          pid = fork();
          count++;
          printf("count = %d\n",count);
          exit(0);
         }

      思考得出什么结果?

      4.fork 对比 vfork

       (1) fork: 子进程用于独立的数据段,堆栈。

          vfork:子进程与父进程共享数据段,堆栈。

       (2) fork:父、子进程的执行次序不确定

          vfork:子进程先运行、父进程后运行

    (2).进程退出

      exit(0);

    (3).进程等待     

       函数名        wait

       函数原型    pid_t wait(int *status)

       函数功能    挂起调用它的进程,直到其子进程结束

       所属头文件   <sys/types.h> <sys/wait.h>

       返回值     成功时:返回终止的那个子进程的id

               失败时:-1

       参数说明    status:记录子进程的退出状态

    (4).执行程序       

       函数名        execl

       函数原型    int execl(const char*)

       函数功能    运行可执行文件

       所属头文件   <sys/types.h> <sys/wait.h>

       返回值     成功时:不返回

               失败时:才返回

       参数说明    pathname:要运行的可执行文件的路径

               arg:可执行文件运行需要的

转载于:https://www.cnblogs.com/lvxiaoning/p/4944667.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值