C++ 中 fork() 函数详解:用法、场景及示例

fork() 函数是 C++ 提供的一个系统调用函数,用于创建一个新的进程。它会在当前进程的基础上创建一个新的进程,其中新进程是当前进程的一个副本,新进程会继承当前进程的所有资源和状态,包括打开的文件、信号处理器、内存映射等。新进程的唯一区别在于它有一个新的进程ID和一个新的父进程ID。

fork() 函数的用法

#include <unistd.h>

pid_t fork(void);

fork() 函数返回两次,一次在父进程中返回新建子进程的进程ID,一次在子进程中返回0。如果fork() 函数返回-1,则表示创建新进程失败。

fork() 函数的使用场景

fork() 函数的使用场景很多,比如多进程编程、父子进程通信等。

示例代码

下面是一个示例,展示如何使用 fork() 函数创建一个新进程:

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

int main() {
    pid_t pid = fork();
    if (pid == -1) {
        std::cerr << 'Failed to create new process.' << std::endl;
        return 1;
    } else if (pid == 0) {
        std::cout << 'I'm the child process with PID ' << getpid() << std::endl;
    } else {
        std::cout << 'I'm the parent process with PID ' << getpid() << std::endl;
    }

    return 0;
}

这段代码会创建一个新进程,并在新进程中输出一条消息。在父进程中,也会输出一条消息,但是它的进程ID与子进程不同。

C++ fork() 函数详解:用法、场景及示例

原文地址: https://www.cveoy.top/t/topic/n5GO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录