温馨提示×

c++ exec如何执行外部命令

c++
小樊
81
2024-12-01 16:36:14
栏目: 编程语言

在C++中,你可以使用exec函数族来执行外部命令

#include <iostream>
#include <cstdlib>

int main() {
    // 要执行的外部命令,例如:ls
    const char* command = "ls";

    // 使用execvp函数执行外部命令
    char* argv[] = {nullptr}; // 注意:argv数组的第一个元素必须是空指针
    int result = execvp(command, argv);

    if (result == -1) {
        std::cerr << "执行外部命令时出错: " << std::strerror(errno) << std::endl;
        return 1;
    }

    // 如果execvp成功执行,这里不会被执行
    std::cout << "外部命令执行成功" << std::endl;

    return 0;
}

在这个示例中,我们使用execvp函数执行了ls命令。argv数组包含一个空指针,因为execvp只需要命令名称。如果命令执行成功,程序将不会返回到这里。如果执行失败,程序将打印错误信息并返回1。

注意:exec函数族会替换当前进程的映像和内存,因此在调用exec之后的代码将不会被执行。如果你需要在子进程中执行命令并获取其输出,可以考虑使用popenpclose函数。

0