Se si collega staticamente il runtime, l'altra opzione è scrivere la propria versione di mktemp
in un file oggetto. Il linker dovrebbe preferire la tua versione rispetto alla versione runtime.
Edit: Grazie a Jason Coco per indicare un grande malinteso che avevo in mktemp
e dei suoi parenti. Questo è un po 'più facile da risolvere ora. Poiché il linker preferirà una versione in un file oggetto, è sufficiente scrivere mktemp
in termini di mkstemp
.
Le uniche difficoltà sono la pulizia dei descrittori di file che mkstemp
restituirà a te e rendendo tutto thread thread. È possibile utilizzare una matrice statica di descrittori e una funzione registrata per la pulizia di atexit
se si riesce a mettere un limite sul numero di file temporanei necessari. In caso contrario, basta usare invece una lista collegata.
fonte
2009-04-12 18:17:42
Utilizzare mkstemp anziché mktemp. –
Qual è il motivo per cui devi usare mktemp? –