dup2()
기능을 사용하여 더 잘 이해하려고합니다.유닉스 dup2 시스템 호출 이해하기?
매뉴얼을 보면 두 가지 매개 변수가 필요합니다. 첫 번째는 기존 파일 설명 자이고 두 번째 매개 변수는 복사 된 파일 설명 자입니다.
나는 파이프의 쓰기 끝으로 stdout을 리다이렉션하려고 결정했다. 표준 출력으로 나는 코드가 있어야한다 생각 수동으로 판단
...
if ((dup2(STDOUT_FILENO, fd[1])) <= 0)
{
printf("error on dup \n");
}
write(STDOUT_FILENO, "Hi \n", 5);
이제 [1] 전략 중을 복제 할 수있다. 그러므로 우리가 stdout에 쓴다면 우리는 파이프 끝을 써야합니다. 그러나 여전히 화면에 인쇄됩니다. 그래서 나는 그것이 fd [1]이어야하고 stdout이 뒤따라야한다고 생각했다. 그렇다면 stdout은 이제 fd [1]의 복사본이므로 이것이 작동하는 이유입니다.
마지막으로 화면에 다시 쓰고 싶다면 어떻게해야합니까?