Roland McGrath <[EMAIL PROTECTED]> wrote: >> So I guess the exec*at business would ultimately be more complicated, >> with two file descriptor parameters: one identifying the working >> directory, and another by which to interpret the first parameter >> if it's a relative file name. > > It seems adequate to just use chdir/fchdir for changing cwd, and then > execveat given the file name (you can get an fd for the original cwd before > chdir, for relative paths in exec).
Using chdir/fchdir is _usually_ adequate. But what about the other times? Sometimes you *cannot* get an fd (or an absolute name) for an initial cwd. Changing cwd is problematic whenever: - your code must be thread-safe - it would be impossible to restore the initial working directory, once it's been changed -- thereafter, no reference to a `.'-relative name can be resolved. With the openat-style functions (as implemented with Linux/proc or in Solaris kernels), there is no need to change the initial working directory at all. > But note that we already have fexecve. Thanks. I didn't know about that. _______________________________________________ bug-gnulib mailing list bug-gnulib@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gnulib