old_fds = oldf->fd; new_fds = newf->fd; memcpy(newf->open_fds->fds_bits, oldf->open_fds->fds_bits, open_files/8); memcpy(newf->close_on_exec->fds_bits, oldf->close_on_exec->fds_bits, open_files/8);
时间: 2024-04-26 09:20:06 浏览: 87
FDS6673BZ-NL-VB-MOSFET产品应用与参数解析
这段代码在复制进程文件描述符表时,将当前进程文件描述符表中的文件描述符复制到新进程的文件描述符表中。首先将当前进程文件描述符表中的 fd 数组指针赋值给 old_fds,将新进程文件描述符表中的 fd 数组指针赋值给 new_fds。然后使用 memcpy 函数将当前进程的 open_fds 和 close_on_exec 指针所指向的文件描述符集合复制到新进程的文件描述符表中。具体地说,open_files/8 表示文件描述符集合的字节数,因为每个文件描述符占用 1 个比特位,因此需要将其除以 8 得到字节数。注意,在这里只复制了文件描述符集合,而没有复制文件本身,因为文件本身是共享的。
阅读全文