Use a default path in exec*p*() if PATH is unset?
Tue Apr 11 19:02:00 GMT 2017
cyg Simple wrote:
> -i, --ignore-environment start with an empty environment
> A relative use of the executable will not be found if the environment is
Not necessarily (see Linux, *BSD, ...). POSIX says this is
"implementation-defined" - under the assumption that 'env' uses execvp()
which is the case for the GNU coreutils version.
>> Interestingly the approach in newlib/libc/posix/execvp.c differs from
>> Cygwin and others:
>> execvp() with PATH unset calls execv(). This has the same effect as
>> execvp() with PATH set to current directory only.
> Why do you assume that this is an issue with execvp?
I never did (otherwise this would be a thread on cygwin-patches list).
The above only means that it is IMO interesting that the Cygwin source
package contains two implementations of execvp() which handle the unset
PATH situation differently.
> The user should
> not expect that an undefined behavior behaves the same way on other
Of course. But even then it is a reasonable question which possible
alternative should be implemented by Cygwin. Cygwin homepage says "Get
that Linux feeling, ...". So "implementation-defined" behavior should
possibly be close to Linux :-)
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin