Python 如何检查文件指针/描述符/句柄是否与同一文件/管道/终端关联?
如果shell对Python 如何检查文件指针/描述符/句柄是否与同一文件/管道/终端关联?,python,c++,io-redirection,buffering,Python,C++,Io Redirection,Buffering,如果shell对stdout和stderr进行了完全缓冲并将其重定向到同一个文件,则文件内容将变得混乱 有没有方法可以检查C++中的文件指针/描述符/句柄的底层文件/管道/终端是否相同? 仅当stdout和stderr重定向到同一文件时,才应禁用缓冲 编辑: 谢谢你的帮助 这个想法在Python3.4中也适用 def same_file(file1, file2): stat1, stat2 = os.fstat(file1.fileno()), os.fstat(file2.filen
stdout
和stderr
进行了完全缓冲并将其重定向到同一个文件,则文件内容将变得混乱
有没有方法可以检查C++中的文件指针/描述符/句柄的底层文件/管道/终端是否相同? 仅当
stdout
和stderr
重定向到同一文件时,才应禁用缓冲
编辑:谢谢你的帮助 这个想法在Python3.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)
这当然不适用于管道/终端
.没有标准的方法来确定FD实际上指的是什么。也可以让多个FD引用同一个文件,这是使用
dup(2)
函数系列时发生的情况
另请参见没有标准方法来确定FD实际指的是什么。也可以让多个FD引用同一个文件,这是使用
dup(2)
函数系列时发生的情况
另请参见这应该有帮助:这应该有帮助: