У меня возникли проблемы с этой командой execve
. Я могу использовать его для запуска большинства других команд, которые очень хороши в моей программе, но если я попытаюсь сделать что-то вроде man ls
или что-то получу эту ошибку.Ошибка при вызове execve (man, args, env)
man: can't execute pager: No such file or directory
man: command exited with status 255: LESS=-ix8RmPm Manual page ls(1) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$PM Manual page ls(1) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$ MAN_PN=ls(1) pager -s
Вот как я звоню его:
execve(cmdPath, args, env);
где cmdPath
это путь (в данном случае /usr/bin/man
) args
является char*
где args[0] = man
, args[1] = ls
env
мой env*[]
передается от главный.
Любая помощь будет высоко оценена. Я умираю здесь.
Вы можете запустить 'человек ls' правильно с одной и той же оболочки, которую вы используете для запуска вашей программы? – us2012
да просто отлично. –
Не могли бы вы попробовать с 'args [0] = ls' – Ganesh