在 C 语言中,如果我编写这样的代码:
#include <stdio.h>
#include <unistd.h>
int main()
{
while(1)
{
fprintf(stdout,"hello-std-out");
fprintf(stderr,"hello-std-err");
sleep(1);
}
return 0;
}
标准输出不会显示,因为它是块设备。但是 stderr 会显示,因为它不是。
但是,如果我在Python3中编写类似的代码:
import sys
import time
if __name__ == '__main__':
while True:
sys.stdout.write("hello-std-out")
sys.stderr.write("hello-stderr")
time.sleep(1)
如果我不刷新这些缓冲区,stdout 和 stderr 都不会显示。这是否意味着 sys.stderr 也是 Python 中的块设备?