1

我有一个在 Linux 上的普通终端中执行良好的命令:

xterm -e bash -c "some commands"

我想使用 c 程序 execXX 系统调用来执行上述命令。我尝试使用以下代码,但它给了我一个正常的 xterm 窗口。

execl("/usr/bin/xterm", "/usr/bin/xterm -e bash -c \"some commands\"", NULL);

有什么方法可以使用 execXX 系统调用执行上述命令?谢谢!

4

2 回答 2

4

你需要这样称呼它:

execl("/usr/bin/xterm", "/usr/bin/xterm", "-e", "bash", "-c", "some commands", (void*)NULL);

约定是让第一个参数与程序的路径相同。如果参数中有空格,则与调用xterm 'something with spaces'而不是xterm something with spaces.

于 2013-04-02T12:11:07.733 回答
0

一个可能的切线:你有什么理由需要这些在 内运行xterm?如果您只想运行一些 shell 命令,那么在/bin/shor中运行它们/bin/bash会更自然,并且可能更可靠。

于 2013-04-02T12:14:04.537 回答