題目:請問下面的程序一共輸出多少個 “-“?
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
for (int i = 0; i < 2; i++){
fork();
printf("-");
}
return 0;
}
就咁睇,答案是 6,但實際是很 tricky 的 8。這是 printf 把 "-" 放到了緩存中,並沒有真正的輸出,在 fork 的時候,緩存被複製到了子進程空間,所以,就多了兩個