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

还是有关fork的问题,fork在一个函数中调用,我被搞胡涂了

    来源: 互联网  发布时间:2015-09-27

    本文导语:  #include void createprocess(){         int t;         printf("123");         t=fork();         if(t!=-1){                 if(t==0) printf("b");                                              ...

#include
void createprocess(){
        int t;
        printf("123");
        t=fork();
        if(t!=-1){
                if(t==0) printf("b");
                                                                                
                if(t>0) printf("a");
        }
}
                                                                                
int main(){
        createprocess();
}
结果是123a123b
为什么123会打印两次呢?
fork在打印123的语句下面啊,问了老师,他也讲不清楚.






|
楼主读书似乎不仔细。这样的问题,基本上在书上讲fork的地方,都会说明。
printf出现在fork前,似乎应该出现一次,但由于没有换行符,或者用fflush将缓冲区内容输出,所以在fork时,“123”没有输出,还在缓冲区内,它的内容也被子进程所复制。父进程和子进程的缓冲区内,都有“123”。

|
同意 nichotilikai(lk)的话
fork共享内存,包括缓冲区
而缓冲区没有清空啊
在第一个printf后加'n'或用fflush
就不会出现这个现象了

    
 
 

您可能感兴趣的文章:

  • fork/exec的工作机制,我还是不太懂
  • 新手:Linux下使用第三方C库(openssl),是调用.so文件还是直接调用.h文件?
  • 为什么经常修改了jsp文件后,调用的还是原来没有改动的内容?我重起了tomcat甚至机器!
  • 哪位高手有兴趣跟我讨论讨论java中调用dll文件??小弟有些问题还是不很清楚??
  • 请问调用notify后被选中线程的wait是立刻返回,还是等到调用notify的线程退出synchronized块后再返回?
  • 为什么我的Applet在浏览器后退再前进到这个页面时还是会调用init函数?
  • settimeofday系统调用只是修改了系统时间?!没写进硬件?重启后时间还是1970怎么办??感谢路过的大神指点
  • applet的更新问题,程序改动后,调用的还是原来的class,急!!!
  • 方法重载后为什么还是调用了父类的方法?
  • shmat(shmid,NULL,0)) shmid相同的话,每次成功调用返回地址是一样,还是不确定
  • Java中方法调用到底是按值,还是按引用???
  • 两个ejb在不同的包里,如何把其中一个ejb作为client,调用另一个呢?我试了半天还是不行啊!
  • 如何知道操作系统是windows 还是redhat linux,以及如何调用linux的命令?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问exec系列函数在执行时是立即返回还是有可能阻塞那?
  • 请问linux有什么函数能检测到我是否拔掉了网线还是没有?
  • 用正则表达式判断字符串是汉字还是拼音的js函数代码
  • 向sourceid提问,还是关于“在定时器到时后,应该发送什么信号让scanf()函数返回?”的
  • Linux下read函数默认到底是阻塞的还是非阻塞的?
  • 如何将两个文本文件,file1,file2内容合起来变成一个文件file3,有响应的命令吗?还是只有自己写函数实现?
  • 还是那个简单的java.util.Vector类函数使用问题
  • java中如果对象是函数参数 到底是传值还是引用???
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • 做socket程序,用recv,send这些函数好还是用fread,fwrite好?
  • 请求linux下判断是否是一个目录还是一个文件的函数
  • linux下用libpcap库函数抓包,如何判断捕获的数据包是IP数据包还是非IP数据包,顺便说一下、捕获的数据包除了IP数据包之外,还有那些种类,非常感谢!!!
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • jsp+bean还是jsp+ejb还是jsp+servlet还是asp+activex好?
  • 还是那个关于update的问题呀,还是解决不了呀?
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • 请问ResultSet返回的是全部数据,还是指针,还是其他什么?
  • 怎样在服务器端判断客户使用的浏览器是使用的简体中文的还是英文的还是日文的或者其他的?
  • 大家以后的发展方向是什么?能交流一下么?是就想学好专业知识,打一辈子工?还是自己开公司?还是要考研究生,使自己提高一个档次?还是想办法出国深造?发言比有分!!!
  • 程序里如何判断光驱里的是DVD盘,还是CD盘,还是一般的CD数据盘
  • linux新手想请问大家你们在linux下通常用什么开发语言和工具(C多点还是C++多点还是pascal ?还有工具方面?)
  • 你的桌面用的是LINUX还是UNIX还是WINDOWS?
  • 请问EJB高手,EJB主要用在b/s方式还是c/s,还是两这都可?有用过jBoss的吗?有配置文档吗?一定给分!!
  • linux下的c/c++语言开发,最好的ide是gcc还是kylix还是其他
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 信号可靠还是不可靠,取决与信号本身还是signal()/sigaction()的区别?
  • 学习JAVA用JSDK开发还是VJ++?有什么区别吗?还是一样?
  • 我以前是搞DELPHI的,现在想学JAVA,请教各位大侠你们用的都是什么开发环境是JBuild,还是VJ++,还是其他的(参与者都有分)
  • 求教:LIUNX 学开发还是学主机维护。。??
  • 新手问题,在linux下c/c++开发是在图形界面下还是字符界面下进行?
  • 速急!!!还是有关于汉入问题!!!大哥们速帮忙,小弟在线等待!!!


  • 站内导航:


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

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

    浙ICP备11055608号-3