xterm:不能execvp:没有文件或目录

时间:2012-10-03 05:03:53

标签: c++ c linux unix xterm

我正在linux中编写一个C程序。

我创建了一个进程并将其分叉以创建一个子进程。我想在这个孩子中运行另一个程序,所以我使用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"

你能告诉我一个决议吗?

1 个答案:

答案 0 :(得分: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)手册页。