> > > 1. Make os.execvp[e] just call the C library's execvp[e]; it has to > > > get this stuff right anyway. We are already counting on it for > > > execv - I would be surprised to find a system that had execv and > > > not execvp, as long as PATH was a meaningful concept (it isn't, for > > > instance, on classic MacOS). > > > > Probably agreed for execvpe(). All the non-env versions must call the > > env version because not all platforms have putenv, and there changes > > to os.environ don't get reflected in the process's environment. > > execvp could be just > > def execvp(file, args): > return execvpe(file, args, environ) > > yes? It already is, sort of: def execvp(file, args): """execp(file, args) Execute the executable file (which is searched for along $PATH) with argument list args, replacing the current process. args may be a list or tuple of strings. """ _execvpe(file, args) > > > 2. Enumerate all the platform-specific errno values for this failure > > > mode, and check them all. On Unix, ENOENT and arguably ENOTDIR. I > > > don't know about others. > > > > > > 3. If we must do the temporary file thing, create a temporary > > > _directory_; we control the contents of that directory, so we can > > > be sure that the file name we choose does not exist. Cleanup is > > > messier than the other two possibilities. > > > > I like to agree with this, but I don't recall exactly why we ended up > > in this situation in the first place. It's possible that it's an > > unnecessary sacrifice of a dead chicken, but it's also possible that > > there are platforms where this addressed a real need. I'd like to > > think that it was because I didn't want to add more cruft to > > posixmodule.c (I've long given up on that :-). > > > > Can you post a patch to SF? Then we can ask for volunteers to test it > > on various platforms. > > I will write such a patch, however, I keep getting lost in the Python > source tree. In addition to Modules/posixmodule.c, I would need to > update the nt, dos, os2, mac, ce, and riscos modules also, yes? Where > are their sources kept? I don't see an ntmodule.c, etc anywhere. The nt module is built from the posixmodule.c source file. AFAIK the others don't support the exec* family at all, so don't worry about them; if something is needed the respective maintainers will have to provide it. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4