2011-10-27 17 views
3

systemu 페이지는 말한다 :open3 대신 systemu를 사용하면 어떤 이점이 있습니까?

systemu 어떤 명령의 상태, 표준 출력 및 표준 오류를 반환하는 모든 플랫폼에서 사용할 수 있습니다. open3/popen4와 같은 다른 방법과 달리 전체 파이프 또는 스레딩 문제가 프로세스 또는 하위 프로세스에 걸릴 위험이 없습니다.

은 (https://github.com/ahoward/systemu)

사람이 조금 설명해 주시겠습니까?

답변

2

메소드 like popen 및 그 다양한 스핀 오프는 편리하며 전체 I/O 라이브러리의 예상 API의 일부입니다.

그러나 교착 상태가 발생하기 쉽기 때문에 부담없이주의해서 사용해야합니다. 아무렇게나 말하자면, 여러분이 명령을 쓰고 읽는다면, 많이 쓰지 않거나 많이 읽지 않는 한, 여전히 괜찮습니다. 신중하게 말하자면, 작업의 내부 세부 사항을 염두에두고 고의적으로 교착 상태에 대처할 때만 많은 양의 데이터를 이동할 수 있습니다.

입력 된 명령에 많은 양의 내용을 쓰고 결과를 읽는다고 상상해보십시오. 파이프가 버퍼링하는 것 이상을 쓰면 프로세스가 잠자기 상태가됩니다. 실제로는 괜찮습니다.하지만 명령이 많은 것을 작성해야한다면 어떨까요? 지금 은 잠자기 상태 일 수 있으며 전송중인 입력을 읽지 못하게 될 수 있습니다. 입력을 보내지 않으면 결과가 나타나지 않습니다.

교착 상태!

관련 문제