2010-12-17 4 views
0

우리 회사의 응용 프로그램은 pdfimages (xpdf에서)을 사용하여 텍스트가 없음을 알고있는 PDF 파일의 일부 페이지가 하나의 이미지로 구성되어 있는지 확인합니다. 우리가 해당 페이지에 pdfimages을 실행하고 하나, 둘 이상 또는 제로 출력 파일이 만들어 졌는지 여부를 계산이 들어 프로세스의 출력 파일 수를 제한하는 방법이 있습니까?

은 (JPG, PPM, PGM 또는 PPM 될 수있다).

문제는 일부 PDF 파일을, 우리는 14 바이트 PPM 이미지의 수백만을 얻을 수 있다는 것입니다, 프로세스를 수동으로 살해되어야한다.

프로세스에 작업을 할당하면 프로세스가 실행되는 데 걸리는 시간을 제한 할 수 있습니다. 그러나 프로세스가 실행 중 최대 두 번까지 새 파일을 만들도록 제어 할 수 있다면 더 나을 것입니다.

그 일을하기위한 실마리가 있습니까?

감사합니다.

+0

C 런타임 라이브러리에는 한 번에 열 수있는 파일 수에 대한 512 제한이 있습니다. 한 가지 해결책은 아무것도하지 않는 임시 파일을 열어서 응용 프로그램에 2를 남기는 것입니다. :) –

+0

하하. 하지만 512 개 이상의 파일을 만드는 것으로 가정하면 파일을 닫고 순서대로 열어 보겠습니다. – Benoit

답변

3

한 가지 방법은 파일 창조를위한 디렉토리를 모니터하는 것입니다 : http://msdn.microsoft.com/en-us/library/aa365261(v=vs.85).aspx - 모니터링 응용 프로그램은 다음 PDF 이미지 추출 프로세스를 종료 할 수 있습니다.

또 다른 생성 할 수있는 파일의 수를 제한하는 간단한 램 디스크를 사용하는 것입니다 : 당신이 http://support.microsoft.com/kb/257405 같은 것을 수정할 수 있습니다.

당신이 FAT16 파일 시스템을 설정할 수 있다면, 루트 디렉토리에 128 개 파일, 다른 DIRS 512의 제한이 있다고 생각? - 빠르게 도달 할 수있는 작은 파일들.

+0

고마워요, 토니. 디렉토리를 보는 것이 우리가 할 수있는 가장 쉬운 방법이라고 생각합니다. – Benoit

+0

@ 베노아트 : 천만에 ... 잘 돌아 가기를 바랍니다. –

1

또한 내 '농담'의견 외에도 _setmaxstdio을 확인하고 도움이되는지 (http://msdn.microsoft.com/en-us/library/6e3b887c(VS.71).aspx) 확인할 수 있습니다.

+0

각 파일을 만든 다음 닫고 다시 사용하면 이러한 접근 방식이 효과가 있습니까? 핸들이 동시에 열릴 것이라고 생각할 이유가 없습니다. –

+0

@ 토니, 좋은 지적이야! –

+0

고맙게도 +1, 또 다른 흥미있는 기능을 가리키고 있습니다. 비록 우리의 경우에는 적용 할 수없는 것으로 보이지만 그것은 훨씬 더 쓸모가 있습니다. – Benoit

관련 문제