gpt4 book ai didi

c++ - 如果文件/目录大小增加到配置级别以上,有没有办法在 linux 中回调

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

我正在使用 linux 系统调用在/c++ 中以编程方式寻找类似这样的东西,

char * filename="/tmp/testDirectory";
fd = open(filename, O_CREAT | O_RDWR);

setmaxfilesize(fd,"4mb"); //<== looking for some API to do this.
registerforCallback(mycallback); //<== looking for some API to do this

void mycallback(void * arg)
{
/* Delete old files inside directory to have space for new files*/
}

最佳答案

是的,但据我所知不是直接与文件大小有关。

看看: https://lwn.net/Articles/604686/

这将为您提供一个如何与文件通知交互的良好起点。文件更改后,您的处理程序会收到通知。在处理程序中,您可以检查大小并完成您的工作。

摘录:dnotify 基本上与系统调用一起工作 fcntl(fd, F_NOTIFY, mask);dnotify 接缝已过时(我的 linux 发行版不再支持 dnotify)

inotify 带有自己的 API。参见 man inotify。可以使用 int inotify_add_watch(int fd, const char *pathname, uint32_t mask); 来监视文件更改,其中 mask 可以是 IN_MODIFY 以查看文件上的所有修改。如果您的处理程序从此处调用,请请求文件大小并执行您的操作。

关于c++ - 如果文件/目录大小增加到配置级别以上,有没有办法在 linux 中回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167307/

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