c++ - xterm:无法 execvp:没有文件或目录

标签 c++ c linux unix xterm

我正在linux中编写C程序。

我创建了一个进程并 fork 它来创建一个子进程。我想在这个 child 中运行另一个程序,所以我使用 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:无法 execvp:没有文件或目录”

您能给我建议一个解决方案吗?

最佳答案

您的系统可能没有xterm已安装(或者用户有错误的 PATH )。您可以测试 /usr/bin/xterm 是否存在(例如 access 系统调用),或者使用其他东西。例如,许多 Debian 或 Ubuntu 发行版都有 x-terminal-emulator (通常是某个精确程序的符号链接(symbolic link))您可以使用它来代替 xterm .

如果xterm启动,然后你的程序./Child1不存在,您应该先测试它是否存在(使用 access )。如果你只有源代码./Child1.c你应该之前已经编译过它(也许通过之前运行 system("gcc -Wall Child1.c -o Child1") 并测试它是否已成功编译,即测试 system 返回 0 并且 Child1 文件存在并且可执行)。

您应该花时间阅读xterm(1)手册页。

关于c++ - xterm:无法 execvp:没有文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12702182/

相关文章:

c++ - C++ 中的 "Include as"

c - fcntl 和套接字之间的链接

linux - create/dev/fakeDevice 支持读、写和ioctl

php - 为什么 putenv() 有效但 export 无效?

c++ - 从 .pcap 文件中获取 HID 报告描述符

c++ - Windows 上的 Qt 5.1.0 使用 minGW 4.8 需要很长时间来调试

C++线程死锁

c - 在函数中初始化数组

c - 将十六进制字符串转换为十六进制字符数组的快速方法

linux - 我可以删除 linux-generic-lts-vivid 吗?