可以执行我的程序的单个功能作为另一个进程吗? (c ++,linux)

时间:2013-11-28 18:45:22

标签: c++ linux process

我的程序使用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.
}

已经检查了基于运行分离的脚本或程序的解决方案。

0 个答案:

没有答案