在C++中創建進程可以使用系統調用函數fork()
或者使用C++11標準庫中的std::thread
。以下是兩種方法的示例代碼:
1、使用fork()
函數創建進程:
#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
創建進程:
#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()
函數創建的子進程會復制父進程的內存空間,因此父子進程之間會共享變量。而使用std::thread
創建的子進程是一個線程而不是一個獨立的進程,因此不會共享父進程的變量。