在C++中創建新的進程有多種方法,以下是其中一種主要方法:
fork()
和exec()
函數:#include <iostream>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid = fork();
if (pid < 0) {
std::cerr << "Failed to fork process" << std::endl;
return 1;
} else if (pid == 0) {
// 子進程
execl("/path/to/your/executable", "executable_name", NULL);
// 如果exec()執行失敗
std::cerr << "Failed to execute process" << std::endl;
return 1;
} else {
// 父進程
int status;
waitpid(pid, &status, 0);
if (WIFEXITED(status)) {
std::cout << "Child process exited with status: " << WEXITSTATUS(status) << std::endl;
}
}
return 0;
}
在上面的示例中,首先使用fork()
創建一個新的進程,然后在子進程中使用execl()
函數執行另一個可執行文件。父進程會等待子進程執行完畢,并獲取子進程的結束狀態。如果想在子進程中執行C++代碼,可以使用execl()
調用自己的可執行文件路徑。