岳麓丹枫001 2015-11-17 04:36 采纳率: 0%
浏览 1382
已结题

exec()函数族疑问,输出不是预料的结果

有两个C源代码文件test.c和file.c

test.c代码如下:
#include
#include
#include
int main(int argc, char argv[])
{
if(0==fork())
{
printf("a");
execlp("./file",(char
)NULL);
}
else
{ wait(NULL);
printf("b);
}

return 0;

}

file.c代码如下:
#include

int main(void)
{
printf("c");
return 0;
}

我先gcc file.c -o file
然后gcc test.c -o test
输出bc
但是将test.c中的printf("a");改为printf("a\n");之后就输出abc;
我的疑问就在于:为什么加了\n之后,就能输出a,而没有加\n就不能输出a
???实在不解!!!

  • 写回答

5条回答 默认 最新

  • javalaiba 2015-11-17 04:47
    关注

    因为你没加/n的时候输出的a被b覆盖了

    评论

报告相同问题?