gpt4 book ai didi

linux - 如何不向虚拟文件写入任何内容

转载 作者:太空狗 更新时间:2023-10-29 12:12:31 26 4
gpt4 key购买 nike

我创建了一个从文件获取输入的虚拟文件驱动程序。此输入在内部保存(除了发生的其他事情)并在读取文件访问时写出。

现在,当我向这个文件写入一个空字符串或数据 block 时,似乎没有调用写入处理程序。乍一看没有意义,但第二眼看是有道理的。看看

echo -n "" > somefile

这会清除文件的内容。我需要同样的虚拟文件,因为我想告诉驱动程序“嘿,现在没有更多数据给你了”。

我是否有机会使用空信息调用 writehandler?

发送某个转义序列不是一个选项,因为数据是二进制的,我不能指定一个值被视为“空”。

最佳答案

首先,在/proc/ 中添加二进制 伪文件可能不太好。您是否考虑过将它们设为文本,就像/proc/ 中的大多数伪文件一样?解析一些文本伪文件的额外开销通常可以忽略不计(系统管理员真的很喜欢在 /proc/ 中有文本伪文件,可以读取而不需要太多有害的副作用)。

然后你可以使用 ftruncate(2)系统调用(但我不知道它是否适用于 /proc/ 伪文件)。然后您将使用 truncate(1)命令如:

truncate /proc/your_weird_pseudo_file

也许这可能行不通(我不知道 procfs 文件系统是否支持)

或者(但这很丑陋),提供另一个伪文件来清除一些状态,这样您的用户会这样做:

echo 1 > /proc/clear_your_weird_state

关于linux - 如何不向虚拟文件写入任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37387419/

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