stdout和stderr會互相影響嗎?

stdout是行緩衝的,輸出會先放在buffer(緩衝區)裏面,只有到換行的時候,纔會輸出到屏幕。

stderr是無緩衝的,會直接輸出在屏幕上

我的問題是如果stderr沒有結束的時候stdout會提前結束嗎?

我寫了一個_listen_install_stdout函數來監聽proc.stdout,發現因爲有stderr管道的輸出導致我的stdout監聽無法結束

只有加入_listen_install_stderr函數proc.stderr之後,我的stdout管道輸出監聽才能正常退出

 

    def _listen_install_stdout(self,stdout):
        while True:
            single_str = stdout.readline()
            if single_str == "":
                break
    def _listen_install_stderr(self, stderr):
        while True:
            single_str = stderr.readline()
            if single_str == "":
                break

沒有查到相應的資料,歡迎各位道友的評論!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章