execlp/execvp needs case-correct PATH
Corinna Vinschen
corinna-cygwin@cygwin.com
Mon Feb 9 10:17:00 GMT 2015
On Feb 9 00:04, Thomas Wolff wrote:
> With a Windows case sensitive file system (and according mount flags
> for /cygdrive), the PATH does not properly reflect casing of the actual
> directories (e.g. C:\WINDOWS vs. C:\Windows, thanks MS...).
> However, the shell finds programs anyway, like e.g. notepad.
> The exec*p system calls, on the other hand, do not find a program in this
> case as demonstrated by the attached test program.
> This is in contrast to the Linux (and POSIX?) manual page which claims
> „The execlp(), execvp(), and execvpe() functions duplicate the actions
> of the shell in searching for an executable file …“
I can't reproduce this. If I change my cygdrive mounts to
case-sensitive, my shell doesn't start notepad anymore:
$ cat /etc/fstab
none /mnt cygdrive binary,posix=1,user 0 0
$ echo $SHELL
/bin/tcsh
$ echo $path
/usr/bin /mnt/c/WINDOWS/system32 /mnt/c/WINDOWS /mnt/c/WINDOWS/System32/Wbem /mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0 /usr/lib/lapack
$ notepad
notepad: Command not found.
$ /mnt/c/Windows/notepad
<works>
$
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20150209/630db640/attachment.sig>
More information about the Cygwin
mailing list