我想创建一个调用另一个程序的子进程(在Unix中使用C ++)。但我想限制子进程不要调用system(),fopen()等(如果确实如此,它将被终止)。
怎么做?
答案 0 :(得分:2)
this可能会对您有所帮助。看来有一种方法可以通过ptrace处理子进程所做的不同事情。 HTH
答案 1 :(得分:1)
假设您的子进程使用C库来执行系统调用,它是一个动态可执行文件,并且您的系统使用ELF,您可以将LD_PRELOAD设置为拦截您感兴趣的函数的库。
如果做不到,你可以做一个Valgrind工具。
答案 2 :(得分:0)
棘手。如果这是Linux或BSD,您可以试用setrlimit(RLIMIT_NPROC, &lim)
。如果子进程尝试创建进程,则不会终止该进程,但会导致对fork
的系统调用失败。如果还有便携式答案,那就不知道了。