2012-10-03 3 views
0

Я пишу программу C в linux.xterm: Can not execvp: Нет файла или каталога

Я создал процесс и разворачивал его, чтобы создать ребенка. Я хочу запустить еще одну программу у этого ребенка, поэтому я использую execlp. Но эта программа должна запускаться в независимом окне.

if ((execlp("xterm","xterm","-e","./Child1", "127.0.0.1", (char *) 0)) < 0) { 
    printf("Failed to Start the Echo Client. Exiting application."); 
    return 1; 
} 

Child1.c это простая программа, которая находится в том же каталоге, что и мой текущий файл.

На выполнение кода работает нормально с окна Xterm идет вверх, но я получаю ошибку "xterm: Can't execvp: No file or directory"

Можете ли вы предложить мне разрешение?

ответ

0

Возможно, у вашей системы не установлено xterm (или у пользователя неправильный код PATH). Вы можете проверить существование /usr/bin/xterm (с помощью, например, access), или использовать что-то еще. Например, многие дистрибутивы Debian или Ubuntu имеют x-terminal-emulator (обычно это символическая ссылка на какую-то точную программу), которую вы могли бы использовать вместо xterm.

Если xterm срабатывает, тогда ваша программа ./Child1 не существует, вы должны проверить ее существование (с access). Если у вас есть только исходный код ./Child1.c, вы должны были скомпилировать его раньше (возможно, запустив system("gcc -Wall Child1.c -o Child1") до и тестирование, которое оно скомпилировало успешно, то есть проверьте, что system возвращает 0 и что файл Child1 существует и является исполняемым).

Для ознакомления с рабочей страницей xterm(1) вам потребуется время.

+0

У моего sytem есть xterm, потому что когда я просто набираю xterm в командной строке ubuntu, я вижу новое окно. –

+0

Можете ли вы рассказать мне, что вы подразумеваете под неправильной ПУТЬ? Должен ли я где-то устанавливать путь? Простите мои комментарии; Я новичок в программировании Linux –

+0

Если вы запускаете 'xterm -e./Child1' в командной строке, что происходит? Если вы просто запускаете './Child1', что происходит? И 'PATH' объясняется в http://www.tldp.org/LDP/abs/html/ –