亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

進程間通信之CreatePipe怎么用

小億
105
2023-10-21 12:46:30
欄目: 編程語言

CreatePipe函數可以用來創建一個匿名的管道,用于進程間通信。下面是一個示例代碼,展示了如何使用CreatePipe函數創建管道并進行進程間通信:

#include <windows.h>
#include <iostream>

int main()
{
    HANDLE hReadPipe, hWritePipe;
    DWORD bytesRead, bytesWritten;
    char buffer[100];

    // 創建管道
    if (!CreatePipe(&hReadPipe, &hWritePipe, NULL, 0))
    {
        std::cout << "創建管道失敗!" << std::endl;
        return 1;
    }

    // 創建子進程
    STARTUPINFO si = { sizeof(STARTUPINFO) };
    PROCESS_INFORMATION pi;
    si.hStdError = hWritePipe;
    si.hStdOutput = hWritePipe;
    si.dwFlags |= STARTF_USESTDHANDLES;

    if (!CreateProcess(NULL, "子進程程序路徑", NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi))
    {
        std::cout << "創建子進程失敗!" << std::endl;
        return 1;
    }

    // 等待子進程結束
    WaitForSingleObject(pi.hProcess, INFINITE);

    // 讀取子進程輸出
    if (ReadFile(hReadPipe, buffer, sizeof(buffer), &bytesRead, NULL))
    {
        buffer[bytesRead] = '\0';
        std::cout << "子進程輸出:" << buffer << std::endl;
    }

    // 關閉管道句柄
    CloseHandle(hReadPipe);
    CloseHandle(hWritePipe);

    return 0;
}

在上面的代碼中,首先調用CreatePipe函數創建一個管道,然后使用CreateProcess函數創建子進程,并將子進程的標準輸出和標準錯誤重定向到管道的寫端。子進程的輸出會被寫入管道,然后父進程使用ReadFile函數讀取管道的讀端,獲取子進程的輸出。最后,關閉管道句柄。

請將其中的"子進程程序路徑"替換為實際子進程程序的路徑。

0
遂宁市| 密山市| 洛浦县| 桐城市| 进贤县| 前郭尔| 周宁县| 固原市| 阿克陶县| 乌恰县| 乌拉特中旗| 阿勒泰市| 夏邑县| 正定县| 蒲江县| 武功县| 彩票| 区。| 涿州市| 娱乐| 米林县| 股票| 中江县| 惠州市| 郑州市| 定远县| 福海县| 习水县| 土默特左旗| 兰州市| 疏勒县| 德化县| 鸡泽县| 保康县| 新绛县| 裕民县| 翁牛特旗| 天全县| 蓝山县| 台东县| 大宁县|