Sto implementando un preprocessore C in C ...
Ho le tre funzioni:
- funzione di sostituzione del trigramma che
- Funzione splicing linea
- funzione di rimozione dei commenti
Tuttavia queste funzioni funzionano separatamente sui file i.e.
La prima funzione prenderà un file e sostituirà i trigraph producendo un file temp1 come output
La seconda funzione prenderà temp-file1 come input e unirà le linee e produrrà un altro temp-file2.
La terza funzione prenderà temp-file2 come input e rimuoverà il commento e produrrà ancora un altro temp-file3.
E ora le principali attività di pre-elaborazione verranno eseguite su temp-file3 e un file .i verrà prodotto come output finale.
Ora ho 3 opzioni:
- Utilizza i file temporanei
- usa le pipe
- al posto di file temporanei temporanei o pipe usano stringhe (vale a dire interi temp-file1, 2 e 3 saranno tre grandi stringhe !!)
Ho tre dubbi ...
- L'opzione 1 sembra meno efficiente dell'opzione 2
- l'opzione 2 sembra essere perfetta, ma sarò limitato dalle dimensioni di quella pipa senza nome? (dato che ho un singolo processo , la funzione 1 2 & 3 sarà chiamata una dopo l'altra) Che cosa succede se la dimensione dell'output della temp > capacità totale del tubo?
- opzione 3 ... È efficiente, facile rispetto alle precedenti due?
Per favore dimmi, quale opzione dovrei scegliere?