Я играл с функциями linux exec () в моей программе на C ++ и пытаюсь выполнить сценарии (perl, python, php, ...).
из bash, который я могу выполнитьнапример: sh -c "perl /home/ignition/test.pl"
, но
execl("/bin/sh", "sh", "-c", "\"perl /home/ignition/test.pl\"", NULL);
не работает.Это работает:
execl("/bin/sh", "sh", "-c", "/home/ignition/test.pl", NULL);
, но это зависит от правильного пути для интерпретатора perl, который указывается в качестве первой строки скрипта, что не очень универсально, например, это не работает с phpскрипты.Я хотел бы использовать метод sh -c, чтобы путь к интерпретатору определялся автоматически ...
Может кто-нибудь указать, что я делаю неправильно?