1
我的主程序正在創建多個寫入stdout的子項。爲了避免它們寫在彼此,我使用的sprintf寫入組合,就像這樣:使用寫入系統調用進行Int陣列的不間斷打印
sprintf(buf, "Bubble Sort Process Started\n");
write(0, &buf, strlen(buf));
當我試圖打印出一個int數組我遇到一個問題。每次程序運行時,數組的大小都會發生變化,所以我不能讓一組sprintf一次打印所有內容。我可以想到的另一種打印方式是使用循環遍歷數組,但其他進程可能會使其輸出中途出現。我怎樣才能讓整個數組在沒有其他進程同時打印其輸出的情況下進行打印?
順便說一句,我認爲你應該寫入fd 1而不是fd 0. – PSkocik
'buf'是一個數組還是一個指針?無論如何,'write'的第二個參數應該是'buf',而不是'&buf'。但是如果'buf'是一個指針,那麼對'write'的調用將寫入指針值,而不是緩衝區內容。另外,文件描述符0通常是_standard input_,而不是_standard output_。 –