[Haskell-cafe] createProcess running non-existent programs

Alexander Kjeldaas alexander.kjeldaas at gmail.com
Tue Aug 14 10:42:57 CEST 2012


On 13 August 2012 23:49, Richard O'Keefe <ok at cs.otago.ac.nz> wrote:

>
> On 13/08/2012, at 11:26 PM, Alexander Kjeldaas wrote:
>
> >
> > This isn't that hard - a pipe shouldn't be needed anymore.  Just require
> a post-2003 glibc.
> >
> > fexecve is a system call in most BSDs.  It is also implemented in glibc
> using a /proc hack.
>
> fexecve is now in the Single Unix Specification, based on
> POSIX as of 2008, I believe.  However,
> http://www.gnu.org/software/gnulib/manual/html_node/fexecve.html
> says
> Portability problems not fixed by Gnulib:
>   *  This function is missing on many non-glibc platforms: MacOS X 10.5,
> FreeBSD 6.0,
>      NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
> OSF/1 5.1,
>      Solaris 11 2010-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
>
> That warning doesn't seem to be fully up to date.  I'm using MacOS X 10.6.8
> and fexecve() isn't in the manuals or in <unistd.h>.
>
>
FreeBSD 8.0 is covered.
OpenBSD not covered
OS X not covered
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man2/execve.2.html
Solaris probably not covered.

So support is pretty good, I'd say. For non-modern systems, checking the
existence of the file first is possible.  The race isn't important, and one
can always upgrade to a modern operating system.

Alexander
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120814/42e27b89/attachment.htm>


More information about the Haskell-Cafe mailing list