두 가지 공동 프로젝트가 있습니다. 한 프로그램은 단순히 출력을 파일에 쓰고, 다른 프로그램은 파일에서 데이터를 읽고 프런트 엔드에서 사용할 수 있도록 데이터를 내보냅니다.
명명된 파이프와 도메인 소켓에 대해 읽었지만 단지 임시 파일을 사용하는 것보다 이점을 찾기가 어렵습니다. 그냥 저와 형식적으로 소통하는 방식인 것 같았어요.
답변1
- 프로세스 간 통신(예: 파이프 또는 소켓을 통한)은 처리가 완료된 후 중간 파일을 저장해야 하는 경우 특히 유용하지 않습니다. 마찬가지로, 상당히 다른 시간에 두 프로그램을 실행해야 하는 경우 지금과 같은 방식으로 실행해야 합니다.
Unix가 만들어졌을 때 디스크는 매우 작았으며 상당히 온화한 명령은 일반적으로 파일 시스템에서 사용 가능한 모든 공간을 소비했습니다. 예를 들어,
다음을 생성하는 일부 명령많은_of_output그렙매우 모호한 문자열
생성된 출력은 다음과 같습니다.많은첫 번째 명령의 출력 크기(즉, 명령을 프로그램으로 실행한 경우 생성되는 중간 파일의 크기)보다 작습니다.
파이프와 소켓을 통해 흐르는 데이터는 (아마도) 디스크에 전혀 기록되지 않습니다. 따라서 이러한 IPC 솔루션은 다음과 같습니다.
- 디스크 기반 솔루션보다 더 효율적입니다(더 빠릅니다).
- 중간 데이터가 최종 결과보다 더 민감한 경우 디스크 기반 솔루션보다 더 안전합니다.