Ho bisogno di creare un file temporaneo nel mio programma C, scrivere alcuni dati su di esso, e quindi invocare un comando esterno (tramite exec o system) per fare un po 'di elaborazione sul file che ho appena creato. Non ho scritto il comando esterno né è possibile integrarlo nel mio programma, quindi non penso di poter condividere con esso un descrittore già aperto. Pertanto, ho bisogno di conoscere il nome del file temporaneo creato.Come posso aprire un file temporaneo E ottenere il suo nome file?
Il tempname() la funzione fa questo, ma purtroppo consiglia di non utilizzare per sé, a causa di una possibile condizione di competizione tra ricevendo il nome e l'apertura del file, e nessuna delle funzioni che raccomanda (tmpfile e mkstemp) fornire un modo per scoprire il nome effettivo del file creato.
'mkstemp' restituisce il nome; modificherà l'argomento template passato (che è un char *, non un const char *) che sostituisce le X con i valori attuali. – Joe