fork()后printf中加上\n和不加有什么区别?为什么?
来源:互联网 发布:c语言 读取jpg 源代码 编辑:程序博客网 时间:2024/05/16 07:07
这是第一个程序:
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
int main()
{
int i;
for(i=0;i<2;i++)
{
fork();
printf("%d_%d ",getpid(),i);
}
}
以下是结果:2917_0 2917_1 2917_0 2919_1 2918_0 2918_1 2918_0 2920_1
父进程和第一个子进程打印了三次,0被打印了两次,其他的可以理解
第二个程序:
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{
int i;
for(i=0;i<2;i++)
{
fork();
printf("%d_%d\n",getpid(),i);
}
}
以下是结果:
2943_0
2944_0
2943_1
2945_1
2944_1
2946_1
这个我可以理解。
两个程序的区别只是最后打印时,一个空格结尾,一个\n结尾,实际上空格去掉的结果也是打印8次。这是为什么呢?求大神解答!
- fork()后printf中加上\n和不加有什么区别?为什么?
- fork()+printf(/n)或printf()的区别?
- fork后printf如何输出
- printf()中的数据类型%h后为什么要加上d才能表示短整型
- C++中换行符‘\n’和控制符‘endl’的区别(cout和printf区别)
- 执行fork后printf的输出问题
- fork/join模式中fork和invokeAll的区别
- c中的printf和c++中的cout有什么区别
- printf,%02X和%x有什么区别
- \n和\r有什么区别
- \n和\r有什么区别
- n=fork()); printf("pid:%d,fork:%d\n",getpid(),n);
- 【Linux】如何创建daemon进程&fork一次和fork两次有什么区别
- Android中printf和LOGE区别
- Vxworks中printf()和logMsg()的区别
- C中printf 和write的区别
- 为什么printf("%f\n",5)输出0.000000
- 在accept前调用fork和accept后调用fork的区别
- Android: NDK编程入门笔记
- sql查询语句练习(解析版)
- 黑马程序员------多线程
- #ifdef __cplusplus extern "C" { #endif 的解释
- SMB协议实现 Samba 3.5.12 发布
- fork()后printf中加上\n和不加有什么区别?为什么?
- SQL 语句处理
- 智能 App 广告条
- css透明与半透明
- 微软发布 Visual Studio 2012 示例代码浏览器
- JavaScript学习笔记1
- Eclipse打JAR包,插件FatJar安装与使用
- JfreeChart 生成工具和Servlet或者Action联合使用
- 国庆、我得出去玩玩......