有没有办法限制进程的输出文件数量?

时间:2010-12-17 10:59:06

标签: c++ winapi

我们公司的一个应用程序使用pdfimages(来自xpdf)来检查我们知道没有文本的PDF文件中的某些页面是否包含一个图像。

为此,我们在该页面上运行pdfimages并计算是否只创建了一个,两个或更多或零输出文件(可能是JPG,PPM,PGM或PPM)。

问题在于,对于某些PDF文件,我们会获得数百万个14字节的PPM图像,并且必须手动杀死该过程。

我们知道,通过将流程分配给作业,我们可以限制流程运行的时间。但如果我们能够控制进程在执行期间最多创建两次新文件,那可能会更好。

你有这方面的线索吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

一种方法是监控文件创建目录:http://msdn.microsoft.com/en-us/library/aa365261(v=vs.85).aspx - 监控应用程序可以终止PDF图像提取过程。

另一种方法是使用一个简单的ramdisk,它限制了可以创建的文件数量:你可以修改像http://support.microsoft.com/kb/257405这样的东西。

如果您可以设置FAT16文件系统,我认为根目录中有128个文件,其他目录中有512个文件? - 使用可以快速达到的小文件。

答案 1 :(得分:1)

此外,除了我的“笑话”评论之外,您可能需要查看_setmaxstdio并查看是否有帮助(http://msdn.microsoft.com/en-us/library/6e3b887c(VS.71).aspx)。