linux父子进程同步实验,linux-凯发k8官方网
int fork()
功能:创建一个子进程
返回值:0-创建成功,-1-创建进程失败,>0-创建进程成功,返回返回子进程id
int wait(int * status)
功能:将调用的进程挂起,等待子进程运行结束
参数:指向整数的指针,0-子进程正常结束,非0-出现运行有误
返回值:调用正常-子进程id,调用进程无子进程-调用失败,返回-1
int exit()
功能:终止进程的执行
返回值:无
sleep(n)
功能:进程随眠1秒
参数:n-随眠时间
实例代码
1.1 父进程创建子进程,分别循环输出"i am parent."和"i am child."5次,每次输出一次后使用sleep(1)延时1s。
#include
#include
/*
1_1.c
父进程创建子进程,分别循环输出
"i am child."和"i am parent."
每输出一次随眠1s。
*/
main()
{
int p;
while((p=fork())==-1);
if(p==0)
{/*子进程块*/
int i;
for(i=0;i<5;i )
{
printf("i am child.\n");
sleep(1);
}
}
else
{/*父进程块*/
int i;
for(i=0;i<5;i )
{
printf("i am parent.\n");
sleep(1);
}
}
}
1.2 在1.1的基础上利用exit()和wait()实现父子进程间的同步。
#include
#include
#include
/*
简单的进程同步:
父进程等待子进程输出后再输出
*/
main()
{
int p;
while((p=fork())==-1);
if(p==0)
{/*子进程块*/
int i;
for(i=0;i<5;i )
{
printf("i am child.\n");
sleep(1);
}
exit(0);
}
else
{/*父进程块*/
int i;
for(i=0;i<5;i )
{
wait(0);
printf("i am parent.\n");
sleep(1);
}
}
}
扩展链接
[apue] 使用文件记录锁无法实现父子进程交互执行同步
父子进程间交互执行是指用一种同步原语,实现父进程和子进程在某一时刻只有一个进程执行,之后由另外一个进程执行,用一段代码举例如下: sync_init(); , counter=; pid_t pid ...
linux父子进程问题
今天遇到一个linux进程启动时指定max open files不对的问题,导致程序建立socket异常,进而导致fullgc问题,影响正常服务.所以顺带又温习了下linux下的父子进程的特性. 孤儿 ...
linux 父子进程实现复制文件内容到另一个文件内
1. 子进程先拷贝前一半 ,父进程一直阻塞到子进程拷贝完再拷贝后一半 /* 子进程先拷贝前一半文件,父进程先阻塞等待子进程拷贝完前一半内容, * 然后父进程在拷贝,后一半内容 * */ #includ ...
linux杀死进程的简单讲解
一. 终止进程的工具kill .killall.pkill.xkill 终止一个进程或终止一个正在运行的程序,一般是通过kill .killall.pkill.xkill 等进行.比如一个程序已经死掉 ...
[置顶] 简单解析linux下进程通信方法
linux下的进程通信手段基本上是从unix平台上的进程通信手段继承而来的.而对unix发展做出重大贡献的两大主力at&t的贝尔实验室及bsd(加州大学伯克利分校的伯克利软件发布中心)在进程间 ...
【linux 进程】fork父子进程间共享数据分析
之前我们通过fork()函数,得知了父子进程之间的存在着代码的拷贝,且父子进程都相互独立执行,那么父子进程是否共享同一段数据,即是否存在着数据共享.接下来我们就来分析分析父子进程是否存在着数据共享. ...
【linux 进程】之关于父子进程之间的数据共享分析
之前我们通过fork()函数,得知了父子进程之间的存在着代码的拷贝,且父子进程都相互独立执行,那么父子进程是否共享同一段数据,即是否存在着数据共享.接下来我们就来分析分析父子进程是否存在着数据共享. ...
linux进程通信之使用匿名管道进行父子进程通信
管道:是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称pipe文件. 管道是单向的.先进先出的.无结构的.固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起 ...
linux编程学习笔记(十四) 创建进程与 父子进程内存空间
1什么是进程:进程是一个执行中的程序 执行的程序: 代码->资源->cpu 进程有很多数据维护:进程状态/进程属性 所有进程属性采用的一个树形结构体维护 ps -a//所有进程 ps - ...
随机推荐
myisam和innodb的区别
个人见解: 1.最主要的差别就是innodb 支持事务处理与外键和行级锁.而myisam不支持 所以有用到事务处理和外键的,要用innodb 2. innodb 中不保存表的具体行数,也就是说,执行s ...
while do while 区别
一.while语句的一般形式为:while(表达式)语句其中表达式是循环条件,语句为循环体.while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句. int i=10; whil ...
git add 常见用法
git add git add [参数] [--] //作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用gi ...
awk by example--转载
总结
以上是凯发k8官方网为你收集整理的linux父子进程同步实验,linux-父子进程的简单同步的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: linux 虚拟机安装图形界面,linu
- 下一篇: 函数调用的参数太少c语言,调用input