Newsgroup: it.comp.software.tex
Titolo: Errore "too many open files" in applicazione di console Windows

In un'applicazione di console Windows 2000 (nello specifico, si tratta di
pdftex) ottengo l'errore "too many open files".
L'errore è determinato dall'inclusione, nel file di input processato, di
molti documenti pdf (comando \includepdf del pacchetto pdfpages);
evidentemente, per qualche motivo non del tutto irragionevole[1], il
programma mantiene aperti i file, invece di chiuderli dopo ogni inclusione.
Il problema è che la cosa avviene molto prima dei fatidici 2048 handle:
stimo che sia piuttosto vicino ai 512 (al 504° documento pdf incluso, più
il file di input, più quello di output, più qualcuno per la teiera...
difficile pensare che si possa andare molto più in là).
Vorrei sapere se può essere un problema legato alla specifica applicazione
(un qualche limite interno arbitrario, o legato alle librerie utilizzate;
il programma è scritto in C++ e compilato con Microsoft Visual C++ 8.0
Professional), o se il comportamento è controllato da qualche impostazione
di sistema.
Ciao.
[1] E' possibile convincerlo ad agire diversamente (rendendo immediato il
comando \pdfximage), ma il risultato non è molto confortante (documento pdf
enormemente più grosso e altro).

Forse non stai usando pdftex per lo scopo per cui è stato progettato.
Non so se sia lo scopo per cui è stato progettato, e francamente non mi
interessa molto. Lo uso per postprocessare documenti pdf, e mi ci trovo
benissimo (ho provato una decina di tool "progettati per lo scopo", e
nessuno ci si avvicina neanche; che sia o no il suo scopo, pdftex è l'unico
che mi consente di fare le cose voglio nel modo che voglio).
Più discutibile è forse il motivo per cui mi trovo a dover processare tanti
documenti pdf, ma si tratta di una serie di contingenze che per la maggior
parte non dipendono da me.
Nello specifico, ho risolto il problema con due inclusioni successive:
prima unisco tutti i pdf originari in due pdf, quindi i due pdf in uno.
Ero però curioso di sapere perché il processo si ferma così "presto",
rispetto al limite di 2048 che mi sarei aspettato (e che mi risolverebbe
largamente il problema).
Ciao.

 secondo me le vittime della Shoa si stanno rivoltando nella tomba  
improbabile.                                        -- PLS, in IFQ

Giacomo Boffi ha scritto:
-- 
 > > secondo me le vittime della Shoa si stanno rivoltando nella tomba
improbabile.                                        -- PLS, in IFQ
??????????????????????

? grazie, ciao
Correggo, UNO dei due che mi consente di fare le cose che voglio nel modo
che voglio: anche perl, modulo PDF::API2, funziona egregiamente (nel caso
specifico, il documento pdf risultante è anche più piccolo, e non c'è il
problema del numero di file aperti). Con pdftex però è più semplice fare
certe cose, come imposizioni, ridimensionamenti, rotazioni, e soprattutto
si possono inserire pagine di documenti pdf esistenti all'interno di un
nuovo documento (creare e formattare nuove pagine direttamente con
PDF::API2 non è molto agevole, quantunque possibile).
In dettaglio spiegare perché questi strumenti mi soddisfano, e altri meno,
è abbastanza problematico, se era questa la domanda. Credo si tratti
soprattutto di gusti personali e di abitudini lavorative. Ho bisogno, per
esempio, di uno strumento da poter controllare da programma, piuttosto che
di un'interfaccia interattiva, e già questo esclude un buon 90% dei tool
che ci sono in giro.
Ciao.

largamente il problema).
Mi pare di aver trovato una qualche spiegazione, anche se non
particolarmente soddisfacente (e abbastanza deprimente):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt__setmaxstdio.asp
L'aspetto deprimente è la sostanziale arbitrarietà del limite, che non
corrisponde ad un limite intrinseco di Windows.
Ciao.