2013-11-20 3 views
1

Я новичок в Linux, а не эксперт по c.Использование exec для запуска приложений/аксессуаров

Несмотря на многочисленные поисковые запросы, я не могу понять, как запустить приложение с помощью exec.

Вот отрывок из моего кода:

else if(cpid>0){ 
    write(STDOUT_FILENO,"in parent",9); 
    sleep(1); 
    wait(NULL); 
    write(STDOUT_FILENO,"CLOSE",5); 
    exit(1); 
    } 
    else{ //child 
    execl("menu://applications/Accessories","menu://applications/Accessories","Galculator",NULL); 


      exit(1); 
     } 

Пожалуйста, руководство меня. Спасибо

+0

В чем именно ошибка, которую вы получаете. Проверьте возвращаемое значение execl и вызовите 'perror' –

+0

type' man exec' – hek2mgl

+0

Ошибка, которую я получаю Нет такого файла или каталога @JesusRamos – user3015353

ответ

0

Попробуйте

if (argc != 2) /* [0] = "run", [1] = "app to run" */ 
{ 
    fprintf(stderr, "Usage: run <app name>\n"); 
    exit(1); 
} 
const char *app = argv[1]; 
int ret; 
ret = execl(app, app, NULL); 
if (ret < 0) 
    perror("execl"); 

Дорожки в Linux основаны на пути файловой системы, кажется, вы путаете, что с путем возвращаемого элементами графического интерфейса в любом окне менеджера вы используете. Это должно работать, если galculator находится в вашем binpath (что должно быть из того, что я могу сказать).

+0

Я пробовал то, что вы просили меня, но я все еще не получаю такой файл или ошибку каталога @JesusRamos – user3015353

+0

@ user3015353 Что именно вы пытаетесь? Вы можете запустить «Galculator» с терминала? Где он установлен? Вы не даете достаточно информации, чтобы помочь вам многое здесь. –

+0

Прошу прощения за недостаток знаний. Я вернусь к вам с правильной информацией. Благодарим вас за помощь и время @ JesusRamos – user3015353

Смежные вопросы