C++ 在linux中,如果文件/目录大小增加到配置级别以上,是否有方法获得回调
我在c/c++中使用linux系统调用以编程方式寻找类似的东西C++ 在linux中,如果文件/目录大小增加到配置级别以上,是否有方法获得回调,c++,c,linux,system-calls,C++,C,Linux,System Calls,我在c/c++中使用linux系统调用以编程方式寻找类似的东西 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
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*/
}
char*filename=“/tmp/testDirectory”;
fd=打开(文件名,O|u CREAT | O|u RDWR);
setmaxfilesize(fd,“4mb”)// 是的,但据我所知,不是直接取决于文件大小
看看:
这将为您提供如何与文件通知交互的良好起点。文件更改后,可以通知处理程序。在处理程序中,您可以检查大小并执行您的工作
摘录:
有dnotify
,它基本上与系统调用fcntl(fd、F_NOTIFY、mask)一起工作代码>
dnotify已过时(我的linux发行版不再支持dnotify)
inotify
自带API。请参见man inotify
。
可以使用int-inotify\u-add\u-watch(int-fd,const-char*pathname,uint32\u-t-mask)监视文件更改代码>可以在_MODIFY
中显示掩码的位置,以查看文件上的所有修改。如果从这里调用处理程序,请请求文件大小并执行操作。谢谢,让我检查一下是否可以达到我的要求。你说得对!在我的回答中加了一点摘录。谢谢