当前位置:  技术问答>linux和unix

操作系统实现中的 if else fork()

    来源: 互联网  发布时间:2016-11-01

    本文导语:  有一段程序 #include main() {  int p1,p2;  if(p1=fork())   putchar('b');  else  {   if(p2=fork())      putchar('c')   else    putchar('a');  } } 运行结果:为bca(有时会出现abc的任意的排列)。 有一个疑问,既然用了if else了,为...

有一段程序
#include
main()
{
 int p1,p2;
 if(p1=fork())
  putchar('b');
 else
 {
  if(p2=fork())  
   putchar('c')
  else
   putchar('a');
 }
}

运行结果:为bca(有时会出现abc的任意的排列)。
有一个疑问,既然用了if else了,为什么还会三个putchar都执行呢?
初做操作系统实验,不是很明白。谢谢。

|
这是一个嵌套的进程生成,因为fork函数返回两次,一次是父进程一次是子进程,谁先返回是不确定的。所以出现了顺序不定的问题,如果是问为什么会都abc都显示建议去看一下Linux的C编程中的进程那一块儿。

|
if(fork())
{
    //父进程执行这儿
}
else
{
    //子进行执行这儿。
}

|
if(p1=fork())
lz这么写有问题吧,是不是应该if( (p1=fork()) )

|
if(p1 = fork)写法可以的。

    
 
 

您可能感兴趣的文章:

  • 在Python3中使用urllib实现http的get和post提交数据操作
  • 请问:如何让对多个现有的文件的写操作成为一个原子操作,并可以实现安全的回滚功能?
  • 在window 的操作系统里,应该有个软件可以实现,安装一个虚拟的linux操作系统
  • qt如何实现:操作键盘实现数据的滚动?
  • PHP实现的连贯操作、链式操作实例
  • Linux 下的C语言实现数据库连接池操作。
  • applet如何实现对数据库(access)的操作,征求设计方案。
  • 小弟有如下问题:JAVA中怎样实现对操作平台的句柄!谢谢了:)
  • 怎么实现对一个udp数据报分多次读的操作
  • 用RMI进行远程对象调用的时候,可不可以实现多个调用远程对象的并发操作
  • 操作系统 实现
  • 在Windows操作系统下能否实现X-Client?
  • 怎样用JAVA语言实现对串口的操作?
  • 怎样能简单的实现LINUX和WINDOWS操作系统并存。
  • 求《操作系统,设计与实现》(Cn,En都可)电子书下载地址,解决即结账
  • 那里有"操作系统:设计与实现(第2版) "
  • 谁有《操作系统设计与实现》上册的答案,还有minix的源码?
  • 在linux操作系统中,如何实现可加载的模块是否被卸载的检测
  • 求《操作系统:设计与实现》pdf
  • ALF+F1,F2新开一下窗口,这样的操作能不能用命令实现
  • 如果没有操作系统,Hello World可以运行吗?如果要在一台没有操作系统的机器上运行Hello World需要什么?应该怎么实现?
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • 谁有操作系统PV操作的例子???谁有操作系统PV操作的例子???谢谢!!
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • windows 系统是否是多用户操作系统,如何理解“多用户操作系统”的“多用户”?
  • Linux下u盘文件系统相关操作
  • 正在学操作系统原理,做操作系统方面的实验用那种工具较好?
  • windows7操作系统介绍及各种使用技巧总结
  • 请问16位操作系统和32位操作系统的区别?
  • linux 操作系统下ps命令介绍
  • java执行操作系统命令的问题:如何判断多个操作系统?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Stacks(堆栈) 成员 操作:比较和分配堆栈
  • 什么样的操作最耗费服务器的IO操作?
  • C++ Strings(字符串) 成员 Operators:操作符,用于字符串比较和赋值
  • 基于linux操作系统之上操作LCD问题,急???
  • C++ I/O 成员 flags():操作flags
  • 哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • C++ I/O 成员 width():操作域宽度
  • 如何在一个用户对application操作时防止别的用户对它操作?(好难啊)
  • c#对象中两种copy操作:深拷贝(Deep Copy)与浅拷贝(Shallow Copy)
  • 1哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • Xcode介绍及创建工程和工程依赖操作步骤
  • C#操作txt文件,进行清空添加操作的小例子
  • MyEclipse如何查看和设置文件编码格式相关操作
  • linux 的命令操作和 windows的命令提示行有什么不同呢?? 为什么windows一般都不用命令提示行操作呢??
  • Html checkbox标签如何设置默认选中以及用js操作checkbox代码示例
  • linux 怎么也能用鼠标操作?? 我的系统是Ubuntu ,不是说linux都用代码操作么??
  • c/c++ 操作符优先级参考
  • 请问我本机操作系统是2K,如何远程操作RedHat9?
  • javascript操作html复选框checkbox:如何判断复选框是否被选中
  • 关于设备操作的一点迷惑:计算机如何知道驱动程序要操作的设备正好是指定的设备?
  • Plesk 中操作和设置 Docker 容器
  • linux文本模式下,怎样回看前面被屏幕滚掉的命令操作过程或者我的操作过程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3