溫馨提示×

C++中如何創(chuàng)建進(jìn)程

c++
小樊
112
2024-08-26 10:08:06
欄目: 編程語言

在C++中創(chuàng)建進(jìn)程可以使用系統(tǒng)調(diào)用函數(shù)fork()或者使用C++11標(biāo)準(zhǔn)庫中的std::thread。以下是兩種方法的示例代碼:

1、使用fork()函數(shù)創(chuàng)建進(jìn)程:

#include <iostream>
#include <unistd.h>

int main() {
    pid_t pid = fork();

    if (pid < 0) {
        std::cerr << "Error creating child process" << std::endl;
    } else if (pid == 0) {
        // Child process
        std::cout << "Child process created" << std::endl;
    } else {
        // Parent process
        std::cout << "Parent process created" << std::endl;
    }

    return 0;
}

2、使用std::thread創(chuàng)建進(jìn)程:

#include <iostream>
#include <thread>

void childProcess() {
    std::cout << "Child process created" << std::endl;
}

int main() {
    std::thread childThread(childProcess);

    if (childThread.joinable()) {
        childThread.join();
    }

    std::cout << "Parent process created" << std::endl;

    return 0;
}

需要注意的是,使用fork()函數(shù)創(chuàng)建的子進(jìn)程會復(fù)制父進(jìn)程的內(nèi)存空間,因此父子進(jìn)程之間會共享變量。而使用std::thread創(chuàng)建的子進(jìn)程是一個線程而不是一個獨(dú)立的進(jìn)程,因此不會共享父進(jìn)程的變量。

0