파일을 사용 gcc
하고 make
컴파일했습니다 c
. 실행 파일의 이름은 입니다 sequence
. 두 개의 대상이 있습니다.
- 입력 파일(예:
in1
) 을 갖고stdin
프로그램을 실행하십시오. 프로그램이 in1 사용을 마치고 종료되면 다른 입력 파일(즉,in2
터미널 명령에 지정됨)을 사용하여 다시 실행합니다. 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