ЛОР, скажи, почему первый вызов execl фейлится, хотя в PATH, очевидно, есть все, что надо?
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
int main(void)
{
printf("PATH=%s\n", getenv("PATH"));
execl("sh", "sh", NULL);
printf("%s\n", strerror(errno));
execl("/usr/bin/sh", "sh", NULL);
return 0;
}
Вывод:
PATH=/usr/lib/qt/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/android-ndk:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
No such file or directory
sh-4.3$ Вот во второй раз все запустилось почему-то.
sh: Вот: command not found
sh-4.3$ exit