Gibt es eine Common Lisp-Funktion oder eine typische Methode zum Erstellen eines temporären Dateinamens oder einer Datei?Common Lisp-Funktion oder Idiom zum Erstellen eines temporären Dateinamens?
Antwort
Es gibt keine Funktion für das gemeinsame Lisp. Allegro hat make-temp-file-name, Emacs hat make-temp-file, clisp hat mkstemp.
Siehe Osicat Funktion open-temporary-file und Makro mit temporärer Datei. Dies erstellt nur eine Datei und gibt einen Stream zurück, es enthält keinen Pfadnamen, daher funktioniert es nur dort, wo ein Stream ausreicht. Osicat ist in Quicklisp.
Sie können [Pfadname] verwenden (http://www.lispworks.com/documentation/lw50/CLHS/Body/ f_pn.htm) um den Pfadnamen eines Streams zu erhalten. – thodg
@billitch Das ist wahr, aber ich hatte im Hinterkopf, dass der OP einen Pfadnamen bekommen wollte, ohne die Datei tatsächlich zu öffnen, mit der Formulierung der Frage: "Erstellen eines temporären Dateinamens". – Liam
Aktualisierung seit ein paar Jahren vergangen sind. Es gibt zwei Systeme, die eine nicht zuvor erwähnte temporäre Datei öffnen können, cl-fad und UIOP. Sie sind beide in Quicklisp, und UIOP ist Teil von ASDF3, das jetzt mit den meisten CL-Implementierungen geliefert wird.
Für mein eigenes Projekt [GSLL] (http://common-lisp.net/project/gsll) habe ich gerade Osicat durch UIOP ersetzt, weil letzteres anscheinend besser unter Windows funktioniert. – Liam
Diesen Link gefunden: https://bugs.launchpad.net/sbcl/+bug/393104 –