我正在用 c++ 编写一个程序,它使用 fork,然后子程序执行 execl,打开 xterm 并执行另一个程序,比如说 p2code。以下是我正在做的事情
execl("/usr/bin/xterm", "/usr/bin/xterm","-e","g++ /Desktop/assignment/p2code.cpp -o asd","/Desktop/assignment/./asd",(void*)NULL);
这会打开 xterm,如下面的屏幕截图所示,但它不会编译 p2code 也不会执行“asd”。我正在尽力学习 execl。我也打开了它的手册页,但我不明白。请帮助我理解它。提前致谢。
答案1
问题出在源文件的路径上。您给出了文件的绝对路径,即/Desktop/assignment/p2code.cpp
但我认为您的源文件位于~/Desktop/assignment
。此外,您的xterm
当前位于目录中。并且我假设目录中~/Desktop/assignment
没有文件夹。因此,请替换为(如果您想提供绝对路径)或源文件名,即(因为当前位于源文件所在的目录中)。Desktop
/
/Desktop/assignment/p2code.cpp
~/Desktop/assignment/p2code.cpp
p2code.cpp
xterm