我正在构建一个 OSX 应用程序并使用屏幕截图命令抓取屏幕截图并将其写入磁盘:
screencapture -mT0 ~/screenshot.png
如果我没有在后台运行 UNIX 命令,我是否可以期望在执行命令并且收到退出状态时完全输出文件?
答案1
始终存在缓冲区,因此当命令返回时,文件可能尚未写入磁盘。此时,所有应用程序都会看到该文件,但如果您的系统崩溃或断电,则重新启动后该文件可能不存在或不完整。
您可以sync
稍后运行以刷新所有文件系统缓冲区,但更改可能仅存在于磁盘缓冲区中,而尚未写入磁盘本身。