임시 파일 대신 명명된 파이프와 소켓을 사용하는 이점

임시 파일 대신 명명된 파이프와 소켓을 사용하는 이점

두 가지 협력 프로그램이 있습니다. 한 프로그램은 출력을 파일에 쓰고 다른 프로그램은 파일에서 읽은 후 프런트 엔드에서 작업할 수 있도록 데이터를 내보냅니다.

명명된 파이프와 도메인 소켓에 대해 읽었지만 임시 파일을 사용하는 것보다 어떤 이점이 있는지 확인하는 데 어려움을 겪고 있습니다. 그냥 형식적인 의사소통 방식인 것 같아요.

답변1

  1. 처리가 완료된 후 중간 파일을 저장해야 하는 경우 프로세스 간 통신(예: 파이프 또는 소켓을 통한)은 특별히 중요하지 않습니다. 마찬가지로, 서로 다른 시간에 두 프로그램을 실행해야 하는 경우 지금 하고 있는 방식대로 실행하면 됩니다.
  2. Unix가 만들어졌을 당시에는 디스크가 매우 작았으며 비교적 순한 명령이 파일 시스템의 여유 공간을 모두 소모하는 것이 일반적이었습니다. 예를 들어,

    some_command_that_produces_a_많은_of_output| grepsome_very_obscure_string

    다음과 같은 출력을 생성합니다.많이첫 번째 명령의 출력 크기(즉, 프로그램을 실행하는 방식으로 명령을 실행한 경우 생성되는 중간 파일의 크기)보다 작습니다.

  3. 파이프와 소켓을 통해 흐르는 데이터는 (아마도) 디스크에 전혀 기록되지 않습니다. 따라서 이러한 IPC 솔루션은 다음과 같습니다.

    • 디스크 기반 솔루션보다 더 효율적(빠름)입니다.
    • 중간 데이터가 최종 결과보다 더 민감한 경우 디스크 기반 솔루션보다 더 안전합니다.

관련 정보