91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何在c++中使用管道技術執行cmd命令

c++
小樊
104
2024-09-15 18:39:11
欄目: 編程語言

在C++中,你可以使用popen()函數來創建一個管道并執行CMD命令

#include<iostream>
#include <fstream>
#include<string>

int main() {
    // 要執行的CMD命令
    std::string cmd = "dir";
    
    // 打開管道并執行命令
    FILE* pipe = popen(cmd.c_str(), "r");
    if (!pipe) {
        std::cerr << "Failed to execute command."<< std::endl;
        return 1;
    }

    // 讀取命令輸出
    char buffer[128];
    std::string result;
    while (fgets(buffer, sizeof(buffer), pipe)) {
        result += buffer;
    }

    // 關閉管道
    pclose(pipe);

    // 輸出結果
    std::cout << "Command output: "<< std::endl<< result<< std::endl;

    return 0;
}

這個示例將執行dir命令(列出當前目錄下的文件和文件夾),然后將輸出讀取到result字符串中。請注意,這個示例僅適用于Unix系統(如Linux和macOS)。在Windows上,你需要使用_popen()函數代替popen()

對于Windows系統,請包含<stdio.h>頭文件,并將popen()替換為_popen(),將pclose()替換為_pclose()。這是一個適用于Windows的示例:

#include<iostream>
#include <fstream>
#include<string>
#include<stdio.h>

int main() {
    // 要執行的CMD命令
    std::string cmd = "dir";
    
    // 打開管道并執行命令
    FILE* pipe = _popen(cmd.c_str(), "r");
    if (!pipe) {
        std::cerr << "Failed to execute command."<< std::endl;
        return 1;
    }

    // 讀取命令輸出
    char buffer[128];
    std::string result;
    while (fgets(buffer, sizeof(buffer), pipe)) {
        result += buffer;
    }

    // 關閉管道
    _pclose(pipe);

    // 輸出結果
    std::cout << "Command output: "<< std::endl<< result<< std::endl;

    return 0;
}

這個示例將在Windows上執行相同的操作。

0
南木林县| 桂平市| 陇南市| 朝阳县| 江城| 南宫市| 延安市| 仙居县| 沿河| 永济市| 阳东县| 宜昌市| 古蔺县| 定日县| 海淀区| 南陵县| 隆回县| 茌平县| 涞水县| 太白县| 武城县| 凉城县| 北京市| 永定县| 巴林左旗| 泸溪县| 呼伦贝尔市| 中山市| 兴国县| 文安县| 阳春市| 琼中| 五大连池市| 镇雄县| 五华县| 淳化县| 保德县| 绥棱县| 安达市| 龙泉市| 灵寿县|