Terminal

用作 ac 程序的標準輸出時不覆蓋文件

  • March 28, 2020

我已經使用gccmake編譯了一個c文件。執行文件的名稱是sequence. 我有兩個目標:

  1. 有一個輸入文件(即in1)作為stdin並執行程序。in2當程序完成使用 in1 並終止時,使用不同的輸入文件(即在終端命令中指定)再次執行它。
  2. 讓程序執行的所有不同時間的所有輸出都轉到同一個文件(即output1),而不覆蓋以前的輸入。所以結果將是這樣的:

輸入文件:

in1:

a

in2:

b

in3

c

在程序中:

putchar(getchar());

輸出:

a
b
c

如何通過終端命令達到預期的結果?

您似乎混淆了外殼的責任和程序的責任。

你有兩個選擇

讓程序打開 3 個文件,並將它們寫入標準輸出。這就是貓所做的。

program in1 in2 in3

使用 shell-redirection-append >>

例如

program <in1 >> file-name
program <in2 >> file-name
program <in3 >> file-name

或使用括號和覆蓋重定向

{
 program <in1
 program <in2
 program <in3
} > file-name

引用自:https://unix.stackexchange.com/questions/575422