1
這是我的程序:爲什麼下列語句打印三次?
int main(int argc, char * argv[])
{
pid_t child;
int i=0;
if(argc < 4){
printf("Usage: %s <num_threads> <test_interval> <no_of_prints>\n", argv[0]);
exit(1);
}
// Some program logic goes here
printf("context - switch \n\nPid\ttid\tNPid\tNtid\tJiffies\n\n");
syscall(320);
child = fork();
if(child == 0) { //in child
fork();
fork();
process();
}
else {
wait(child);
//Do some printing here
}
我的輸出具有圖3(有時2)打印 「上下文 - 開關」 printf
線。
但打印的字符串以換行符(兩個偶數)結束,並且使用普通的行緩衝標準輸出,應該刷新緩衝區,不是嗎? –
@DanielFischer不一定,特別是如果輸出重定向到非tty。無論如何,該標準在達到\ n時不會對緩衝區進行刷新。 – cnicutar
是的,這是真的,沒有保證。但是如果打印到tty,這將是相當不尋常的。不過,我沒有想到重定向。 –