나는 이것에 잠시 머물 렀습니다. stdout을 두 곳으로 리다이렉트 할 수 있습니까? 연습을 위해 자체 셸을 작성 중이며 현재 ps aux | wc -l
또는 ps aux | wc -l > output.file
과 같은 명령을 실행할 수 있습니다. 그러나 ps aux > file.out | wc -l
을 실행할 때 두 번째 명령은 첫 번째 명령을받지 못합니다.표준 출력을 C의 두 위치로 리디렉션 할 수 있습니까?
마지막 예에서 첫 번째 명령은 파이프의 한쪽 끝으로 출력되는 하위 프로세스에서 실행됩니다. 논리는 다음과 유사합니다.
close(stdout);
dup2(fd[1], STDOUT_FILENO);
//If a file output is also found
filewriter = open(...);
dup2(filewriter, STDOUT_FILENO);
//Execute the command
아, 알겠습니다. 감사! – n0shadow
'named pipe'라는 개념이 있습니다.이 개념은 때때로 매우 유용 할 수 있습니다. 프로세스 간 통신을 통해 매우 유용한 몇 가지 작업을 수행 할 수있는 명명 된 파이프 인 특수 파일을 만들 수 있습니다. 더 자세히 알고 싶다면 http://en.wikipedia.org/wiki/Named_pipe – JohnH
좋아요, 한번 살펴 보겠습니다. – n0shadow