我的程序使用fanotify来监控文件访问。由于我的程序也访问文件,我必须检查我的程序的pid与进程访问文件的pid是不一样的。
get_pid() != event_metadata->pid
当这个条件成立时,我的程序会做它的事情。
现在,我想编写一些单元测试,但测试需要访问文件才能进行测试。但是由于上述条件,测试的pid与访问文件的进程相同。所以测试什么都不做。
可以在一个独立的进程中运行一个简单的函数(比如说,访问文件的函数)而不需要创建父进程的整个副本(就像fork()那样)。
以下是我想要的一般概念:
void access_files(){...}
void do_test(){
... // A great C++ spell here.
access_files() // Execute this and only this function in other process.
... // More test stuffs here.
}
已经检查了基于运行分离的脚本或程序的解决方案。