Re: Get and set current directory Lassi Kortela 21 Jul 2019 13:59 UTC
> has the advantage of allowing dynamic binding for procedures such as open-input-file that need to resolve relative file names One trick is to have a procedure: (with-current-directory "/some/dir" (lambda () ...)) So with-current-directory saves the OS's idea of the current directory, does a chdir() to the desired directory before the thunk and then a chdir() back to the old one afterwards. There's an unwind-protect so the chdir() is restored to the old one even on error. Many people use this pattern in various languages. It simple to implement and nice to use. Caveat: Eager to hear how the dynamic duo of threads and signals will ruin this proposal too :) I haven't had to deal with those.