c++创建进程怎么使用

2024-05-06

在C++中创建进程通常使用fork()函数来创建一个子进程,然后可以使用exec()系列函数来执行另一个程序。以下是一个简单的示例:

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

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

    if (pid < 0) {
        std::cerr << "Error creating child process." << std::endl;
        return 1;
    } else if (pid == 0) {
        // Child process
        execl("/bin/ls", "ls", "-l", NULL);
    } else {
        // Parent process
        wait(NULL);
        std::cout << "Child process completed." << std::endl;
    }

    return 0;
}

在这个示例中,fork()函数将创建一个子进程,并返回子进程的PID。如果fork()返回值小于0,则表示创建进程失败。如果返回值为0,则表示当前进程是子进程,可以使用execl()函数来执行/bin/ls命令。如果返回值大于0,则表示当前进程是父进程,它会等待子进程执行完毕后输出一条消息。

需要注意的是,fork()函数在父进程和子进程中返回的值是不同的,因此通过判断返回值来区分父进程和子进程。同时,在子进程中使用execl()函数来执行另一个程序时,需要指定要执行的程序路径和参数列表。