在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)程的變量。