Raymond Toy pushed to branch issue-373-handle-temp-files at cmucl / cmucl
Commits:
-
578efc93
by Raymond Toy at 2025-02-17T17:48:37-08:00
1 changed file:
Changes:
| ... | ... | @@ -658,6 +658,21 @@ |
| 658 | 658 | (close ,s)
|
| 659 | 659 | (unix:unix-close ,fd))))))
|
| 660 | 660 | |
| 661 | +;;; WITH-TEMPORARY-FILE -- Public
|
|
| 662 | +(defmacro with-temporary-file ((filename)
|
|
| 663 | + &parse-body (forms decls))
|
|
| 664 | + (let ((fd (gensym "FD-")))
|
|
| 665 | + `(let (,filename)
|
|
| 666 | + (unwind-protect
|
|
| 667 | + (let (,fd)
|
|
| 668 | + (multiple-value-setq (,fd ,filename)
|
|
| 669 | + (unix::unix-mkstemp "/tmp/cmucl-temp-file-XXXXXX"))
|
|
| 670 | + (unix:unix-close ,fd)
|
|
| 671 | + (locally ,@decls
|
|
| 672 | + ,@forms))
|
|
| 673 | + (delete-file ,filename)))))
|
|
| 674 | +
|
|
| 675 | + |
|
| 661 | 676 | ;;; WITH-TEMPORARY-DIRECTORY -- Public
|
| 662 | 677 | (defmacro with-temporary-directory ((dirname template)
|
| 663 | 678 | &parse-body (forms decls))
|