阻止子进程进行系统调用

时间:2010-10-10 12:45:10

标签: c++ unix process

我想创建一个调用另一个程序的子进程(在Unix中使用C ++)。但我想限制子进程不要调用system(),fopen()等(如果确实如此,它将被终止)。

怎么做?

3 个答案:

答案 0 :(得分:2)

this可能会对您有所帮助。看来有一种方法可以通过ptrace处理子进程所做的不同事情。 HTH

答案 1 :(得分:1)

假设您的子进程使用C库来执行系统调用,它是一个动态可执行文件,并且您的系统使用ELF,您可以将LD_PRELOAD设置为拦截您感兴趣的函数的库。

如果做不到,你可以做一个Valgrind工具。

答案 2 :(得分:0)

棘手。如果这是Linux或BSD,您可以试用setrlimit(RLIMIT_NPROC, &lim)。如果子进程尝试创建进程,则不会终止该进程,但会导致对fork的系统调用失败。如果还有便携式答案,那就不知道了。