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

我在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 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
显示掩码的位置,以查看文件上的所有修改。如果从这里调用处理程序,请请求文件大小并执行操作。

谢谢,让我检查一下是否可以达到我的要求。你说得对!在我的回答中加了一点摘录。谢谢