다음 호출을 사용하여 프로세스를 생성하고 stdin, stdout 및 stderr에 대한 파일 설명자를 가져 와서 stdout에서 출력을 감시합니다.pygtk/gnome의 gobject.spawn_async가 반환하는 파일 설명자를 어떻게 플러시 할 수 있습니까?
[widget.pid,widget.stdin,widget.stdout,widget.stderr] = \
gobject.spawn_async(['/bin/sed','s/hi/by/g'],
standard_input=True,
standard_output=True,
standard_error=True
)
gobject.io_add_watch(widget.stdout,
gobject.IO_IN,
getdata)
그런 다음 getdata 콜백 함수를 트리거 할 것으로 예상되는 행을 widget.stdin에 씁니다.
내가 발견 한 것은 콜백 getdata는 widget.stdin을 닫을 때만 호출된다는 것입니다.
터미널에서, sed는 stdin으로 보낸 각 완성 된 줄을 반향합니다. 그래서 나는 sd가 출력 된 내용을 stdin에서 볼 때마다 출력을 생성하고 줄을 얻지 못할 것으로 예상합니다. 한번에 한.
widget.stdin에 작성된 행을/bin/sed에서 강제로 표시하고 연결을 열어 더 많은 행을 보낼 수 있도록하는 방법이 명확하지 않습니다. python -u 플래그는 아무런 차이가없는 것처럼 보입니다. 어떤 아이디어? 감사.