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

溫馨提示×

進程間通信之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
鸡西市| 杭锦旗| 文化| 上高县| 琼海市| 呈贡县| 股票| 湘西| 仲巴县| 安顺市| 锡林郭勒盟| 洮南市| 姜堰市| 乌拉特前旗| 临安市| 读书| 西平县| 安泽县| 桐梓县| 丰镇市| 夹江县| 深水埗区| 潢川县| 泸州市| 霍州市| 桦南县| 项城市| 南乐县| 曲阜市| 衡山县| 金寨县| 鄢陵县| 乌兰察布市| 容城县| 台湾省| 长寿区| 南京市| 福海县| 岳阳县| 卢龙县| 新宁县|