gpt4 book ai didi

c - 当进程连续写入文件时如何清空文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:55 26 4
gpt4 key购买 nike

我的场景如下:

名为 a.out 的程序在无限循环中不断写入“hello world”并将其输出重定向到文件名 test.log。

我想在 a.out 不断写入 test.log 时清空(截断)test.log。

最佳答案

您无法停止您描述的程序,在不停止程序的情况下重新填充文件。你可以 kill -STOP $(pgrep yourprogram) (以及稍后的 kill -CONT)或者干脆把它吹走。

要截断文件,

$ truncate -s<em>size file</em>

哪里<em>size</em>是任何合理接近其当前大小的东西。 HFS+ 显然不会进行稀疏分配,但现代的其他一切都会。

(编辑 2:使用 dd 进行的一些测试表明指定 -s0 可能很有效,如果您愿意尝试的话)。

要查看实际用于存储文件的空间,du -h file ls将报告其外观尺寸。

(编辑:the Arch wiki entry 让我理清了创建稀疏文件的主题)

关于c - 当进程连续写入文件时如何清空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24132432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com