Как запустить программу odaslive из файла c
Поэтому я пытаюсь вызвать программу из создаваемого мной ac-файла, но единственный способ, которым я смог это сделать, - это использовать функцию system(), которая сама по себе вызывает ошибку. Для запуска программы в терминале я использую;
~/odas/bin/odaslive -vc ~/odas/config/odaslive/matrix_creator.cfg
Это то, что я сейчас пытаюсь использовать для запуска той же программы, она компилируется и запускается в терминале, но ничего не происходит.
pid_t pid=fork();
if (pid==0){
//static char *argv[] ={"echo","-vc ~/odas/config/odaslive/matrix_creator.cfg", NULL};
execl("~/odas/bin", "~/odas/bin/odaslive", "-vc", "~/odas/config/odaslive/matrix_creator.cfg", (char *)NULL);
exit(127);
} else {
waitpid(pid,0,0);
}
1 ответ
execl
требует путь к файлу в первом аргументе.
Это не расширяется с домом для пути. Полный путь должен быть указан.
Проверьте возвращаемое значение и errno
, Он сообщит вам о причине отказа, если таковые имеются.
int ret = execl("/home/username/odas/bin/odaslive", "/home/username/odas/bin/odaslive", "-vc", "/home/username/odas/config/odaslive/matrix_creator.cfg", (char *)NULL);