Vorrei creare una directory temporanea univoca in Windows da un codice C (non C++ o C#). Voglio fare questo in modo che possa mettere alcuni file temporanei nella directory, e poi cancellarli tutti facilmente quando ho finito di scrivere (rimuovendo la directory in modo ricorsivo).Creazione di una directory temporanea univoca da C pura in windows
Sono essenzialmente alla ricerca di un equivalente della funzione linux mkdtemp
. C'è una risposta C# here, e le risposte su this question suggeriscono di usare Boost. Ma dal momento che sto usando C, quelle soluzioni non funzionano per me .
Il meglio che ho potuto venire in mente finora è quello di utilizzare GetTempFileName
seguito da CreateDirectory
, ma il problema non è che se chiedo GetTempFileName
per creare un nome di file univoco, lo farà anche creare il file (che io non desidero I , poiché voglio creare una directory).
relazione a ciò, c'è GetTempPath
, che restituisce la posizione della cartella Temp dell'utente dall'ambiente variabili - ma dal momento che voglio creare la mia propria directory che posso tranquillamente cancellare più tardi, ho ancora bisogno di creare una directory all'interno qualsiasi percorso che restituirebbe.
Sembra che se voglio una directory unica per creare, dovrò creare un file temporaneo, ottenere il nome, eliminarlo, e quindi creare una directory con lo stesso nome - che suona molto disordinato . Qualche altra idea?
L'idea nel tuo ultimo paragrafo non funzionerebbe, sarebbe soggetta a condizioni di gara. –