fork与printf的缓存问题

来源:互联网 发布:淘宝购物车在哪? 编辑:程序博客网 时间:2024/05/21 09:58
//printf 会将数据输入到缓存,当遇到\n,EOF,自主刷新,缓冲区满的时候会进行刷出。//遇到\n刷出缓存是对于字符设备而言的,像标准输出stdout这些属于行缓冲设备。//在这里讨论fork和print , for直接的关系//调用fork()后,子进程会复制主进程的缓冲区,变量值,堆栈等等。//print 8 "A"#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(void){    int i;    for(i=0; i<2; i++)    {       fork();       printf("A");    }    return 0;}


//print 6 "-"#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(void){    int i;    for(i=0; i<2; i++)    {       fork();       printf("-\n");    }    return 0;}


原创粉丝点击