2016-03-31 51 views
0

如果stdoutstderr被shell完全緩衝並重定向到相同的文件,文件內容將會混亂。如何檢查文件指針/描述符/句柄是否與同一個文件/管道/終端相關聯?

是否有方法檢查文件指針/描述符/句柄的底層文件/管道/終端在C++和Python中是否相同?

只有將stdoutstderr重定向到同一個文件時,才應禁用緩衝。編號:
謝謝isedev's comment

這個想法也適用於Python 3.4。

def same_file(file1, file2): 
    stat1, stat2 = os.fstat(file1.fileno()), os.fstat(file2.fileno()) 
    return (stat1.st_dev == stat2.st_dev) and (stat1.st_ino == stat2.st_ino) 

這對管道/終端當然不起作用。

Similar way to check for the same file in WinAPI

+1

這應該幫助:http://stackoverflow.com/questions/12502552/can-i-check-if-two-file-or-file-descriptor-numbers-refer-to-在同一的文件 – isedev

回答

相關問題