MST

星途 面试题库

面试题:C语言中Linux prefork模型进程启动顺序基础

在Linux C语言的prefork模型中,简要描述父进程和子进程启动的基本顺序,以及通常在每个阶段会执行哪些关键操作?
50.3万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  1. 父进程启动
    • 关键操作
      • 创建多个子进程。通过fork系统调用创建子进程,fork会复制父进程的地址空间等资源给子进程,父进程返回子进程的进程ID,子进程返回0。
      • 父进程通常会监听一个特定的端口,等待客户端连接。例如使用socketbindlisten等函数完成网络套接字的初始化并监听指定端口。
  2. 子进程启动
    • 关键操作
      • 子进程在fork返回后,因为返回值为0,所以可以根据此判断进入子进程逻辑。
      • 子进程通常会关闭不需要的文件描述符,如父进程监听的套接字描述符(因为监听套接字在父进程监听即可,子进程只负责处理连接),避免资源浪费和错误使用。
      • 子进程等待接收父进程传递过来的任务(例如新的客户端连接),当有任务时,执行相应的处理逻辑,如处理客户端请求等。