我在哪里可以学习如何使C++程序与操作系统(Linux)交互

aug*_*tin 7 c++ linux operating-system

我是C++初学者.

我想创建与操作系统交互的小程序(使用Kubuntu Linux).到目前为止,我还没有找到任何教程或手册来让C++与操作系统接口.

在PHP中,我可以使用命令exec()或反引号运算符来启动通常在控制台中执行的命令.我怎样才能在C++中做类似的事情?如何让我的C++程序执行任何其他命令?如何获得这些命令的输出?

谢谢.

pax*_*blo 7

您可以使用system()执行任意命令,但是,如果您想通过程序轻松控制输入和输出,您应该查看popen().

为了获得更多控制,您可以查看shell可能执行的操作,创建一些额外的文件描述符,分支启动另一个进程,在该进程中设置文件描述符0,1和2(输入,输出和错误)以进行连接将它们添加到原始进程文件描述符中,然后执行要控制的程序.这不适合胆小的人:-)


Ste*_*hen 6

您可以使用该system()命令stdlib执行系统命令:

#include <stdlib.h>
int main() {
    system("ls -l");
}
Run Code Online (Sandbox Code Playgroud)

system()返回一个int返回值,但int的值取决于系统.如果您尝试使用不存在的命令,您将获得标准的"无此命令"输出,并且通常是非零返回值.(例如,system("ls -l");在我的Windows XP计算机上运行时返回值1.