execvp() and the other 'p' variants of exec run programs also from
current directory even if '.' is not in the PATH.

The function execvp() simply calls execv(find_exec(path,
temp_path_conv_buf), argv). The function find_exec() returns the path
unchanged if not found in PATH, execv() runs the file from cwd then.


Testcase (1.5.25-15 and 1.7.0-65):

$ cd /tmp

$ cat >execvp.c <<EOF
#include <unistd.h>
#include <stdio.h>
int main(int argc, char **argv)
{
  execvp(argv[1], argv+1);
  perror(argv[1]);
  return 1;
}
EOF

$ make execvp
cc     execvp.c   -o execvp

$ cp -p /bin/echo.exe echo1.exe

$ PATH=/bin ./execvp echo1 is this a bug \?
is this a bug ?


Christian




--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to