Добавить каталог в PATH для execvp()

Я пишу небольшую консольную программу на C вместе с реализациями для ls, tac и dir.

Я использую функцию execvp() для переопределения разветвленных дочерних элементов процесса, но когда пользователь вставляет одну из трех вышеперечисленных команд, мне приходится выполнять свою собственную версию, а не ту, что есть в системе.

Я знаю, что execvp() использует системную переменную PATH для поиска исполняемого файла в разных местах. Могу ли я каким-то образом отредактировать PATH в своей программе, чтобы я мог добавить собственный каталог в качестве первого места для поиска execvp()?

Спасибо!


person Cristian Holdunu    schedule 09.01.2013    source источник
comment
Здесь есть хорошее объяснение: stackoverflow.com/questions/7630551/   -  person hmatar    schedule 09.01.2013
comment
Нельзя ли указать полный путь?   -  person Ramy Al Zuhouri    schedule 09.01.2013


Ответы (1)


Вы можете заменить PATH на setenv, но учтите, может быть проще просто проверить наличие этих команд перед выполнением exec.

person Fred Foo    schedule 09.01.2013