如何在终端中显示程序的实时输出 -- stream buffering
swift
// main.swift
import Foundation
print(123)
sleep(1)
print(456)
sleep(1)
print(789)
上面是一段可以执行至少两秒钟的 Swift 代码, 我们可以在命令行中以 nohup swift main.swift &>output.txt &
命令执行, 然后在另一个命令行窗口中使用 tail -f output.txt
命令实时查看文件内容变化. 按照我们直觉, 程序会在执行的第 0 秒打印 123
, 第 1 秒打印 456
, 第 2 秒打印 789
, 但是结果是直到第 2 秒一次性打印了所有内容, why?