당신에게는 두 가지 선택이 있습니다

당신에게는 두 가지 선택이 있습니다

파일을 사용 gcc하고 make컴파일했습니다 c. 실행 파일의 이름은 입니다 sequence. 두 개의 대상이 있습니다.

  1. 입력 파일(예: in1) 을 갖고 stdin프로그램을 실행하십시오. 프로그램이 in1 사용을 마치고 종료되면 다른 입력 파일(즉, in2터미널 명령에 지정됨)을 사용하여 다시 실행합니다.
  2. output1이전 입력을 덮어쓰지 않고 다양한 프로그램 실행 시간의 모든 출력을 동일한 파일(예: )로 이동합니다 . 결과는 다음과 같습니다.

입력 파일:

in1:

a

in2:

b

in3

c

프로그램에서:

putchar(getchar());

산출:

a
b
c

터미널 명령을 통해 원하는 결과를 얻는 방법은 무엇입니까?

답변1

쉘의 책임과 프로그램의 책임을 혼동하고 있는 것 같습니다.

당신에게는 두 가지 선택이 있습니다

프로그램이 3개의 파일을 열고 이를 stdout에 쓰도록 합니다. 이것이 고양이가 하는 일입니다.

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

관련 정보