C++ 打开终端,通过C编程执行命令
有人知道如何使用C程序打开终端并执行多个命令吗 我有一个C语言的程序和终端执行的另一组命令。我需要把它们合并成一个C语言的程序 我正在使用Ubuntu 10.04 谢谢 检查“man xterm”,参数-e。然后,在C中,您可以:C++ 打开终端,通过C编程执行命令,c++,c,ubuntu,terminal,ubuntu-10.04,C++,C,Ubuntu,Terminal,Ubuntu 10.04,有人知道如何使用C程序打开终端并执行多个命令吗 我有一个C语言的程序和终端执行的另一组命令。我需要把它们合并成一个C语言的程序 我正在使用Ubuntu 10.04 谢谢 检查“man xterm”,参数-e。然后,在C中,您可以: 系统(“xterm-els”)您的问题可能有些误导 因为您希望在c代码中运行所有的终端命令,所以实际上可能只有这些命令的文本输入/输出。如果是,您可能不需要终端 当(终端)程序的输出是文本流时,我使用popen。它可能是最容易使用的。例如: ... const
系统(“xterm-els”)您的问题可能有些误导 因为您希望在c代码中运行所有的终端命令,所以实际上可能只有这些命令的文本输入/输出。如果是,您可能不需要终端
当(终端)程序的输出是文本流时,我使用popen。它可能是最容易使用的。例如:
...
const char* cmndStr = "ls -lsa";
FILE* pipe = popen(cmndStr, "r");
...
popen指令执行cmndStr中的命令,写入命令(ls-lsa)标准输出的任何文本都会重定向到管道中,然后可供C程序读入
popen打开一个单独的进程(但没有终端,只有管道)
“Fork”是启动单独进程的另一种方式,对启动进程的std i/o进行一些控制,但我认为它不是终端
另一方面,如果您的输出不是一个简单的文本流,那么您可以使用一个仅输出的专用终端屏幕来适应特殊的输出活动。例如,当我使用ncurses时: 我以常规方式手动打开终端,并在终端中
- 发出命令“tty”以查找设备名称,然后
- 发出“cd”将焦点设置为工作目录 dmoen@C5:~$tty /dev/pts/1 dmoen@C5:~$cd工作 dmoen@C5:~/工作$
有一组“exec”命令。。。见man exec。要将它们连接回您的程序,您可能需要处理文件,或者重定向i/o。选择太多,无法在此列出
此外,您还可以使用shell管道将这些命令与c程序连接。您正在寻找c解释器。检查这个问题您可以通过
系统
功能执行终端命令。好的,我会更具体一些-im使用gstreamer(服务器和客户端),我使用终端运行gstreamer命令(管道)。我还有一个C程序(服务器和客户端),客户端通过TCP向服务器发送一些数据。现在我需要将这些程序合并到一个C程序中,并使用C程序运行管道(客户端和服务器端)。管道命令示例(服务器端):gst launch videotestsrc!ffenc_mpeg4!rtpmp4vpay!udpsink主机=127.0.0.1端口=5000