Linux环境编程--如何用C语言创建多进程运行以及简单的pipe管道使用

本文介绍了在Linux环境下如何使用C语言创建多进程,并通过fork()函数进行进程复制。详细讲解了fork()的工作原理,以及如何利用pipe管道进行父子进程间的通信。通过一个示例程序展示了进程间数据的独立性和管道通信的效果。
摘要由CSDN通过智能技术生成

进程:

 每一个进程都有一个非负整数表示的唯一进程ID。当一个进程终止后,其进程ID就成为复用的候选者,大多数UNIX系统实现延时复用算法,使得赋予新建进程的ID不同于最近终止进程所使用的ID,防止将新进程误认为某个先前终止的进程。

创建多进程:

 这里就需要调用命令fork()或者vfork()

fork():

 一个现有的进程可以调用fork()系统调用用来创建一个新的进程:

 pid_t  fork(void);

 由fork()创建的新进程被称为子进程。

 1,子进程可以通过getpid()和getppid()分别获取自己的进程ID和父进程ID,所以返回0;

 2,一个父进程可以有很多个子进程,没有一个系统调用可以获取所有的子进程ID,所以需要将子进程的ID通过返回值的形式传递给父进程。

 子进程是父进程的副本,它将得到父进程的文本段、数据段、堆和栈副本,这样父子进程都将继续执行fork()之后的代码。但父子进程并不共享这些存储空间,父子进程只是共享文本段。

  新创建的父子进程谁先执行没有规定,由系统调用决定。

 注:

 1.fork()函数被调用一次,但有两次返回

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值