小编Mad*_*Ram的帖子

文件描述符和 fork

当一个孩子被分叉时,它继承了父母的文件描述符,如果孩子关闭文件描述符会发生什么?如果孩子开始写,在父母结束时文件会发生什么?谁来管理这些不一致,内核还是用户?

当进程调用该close函数以通过文件描述符关闭特定打开的文件时。在进程的文件表中,引用计数减一。但是由于父子进程都持有同一个文件,引用计数是 2,关闭后它减少到 1。由于它不是零,进程仍然继续使用文件,没有任何问题。

请参阅 Terrence Chan UNIX 系统编程,(文件的 Unix 内核支持)。

file-descriptors fork files

24
推荐指数
1
解决办法
3万
查看次数

为什么 top 和 ps 为相同的进程显示不同的 PID?

当我运行时top -H,我看到我的多个mysql线程都具有相同的 PID。但是,在ps -eLf我看来,每个人都有不同的 PID:

ps -eLf

UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
mysql     1424     1  1424  0   17 18:41 ?        00:00:00 /usr/sbin/mysqld
mysql     1424     1  1481  0   17 18:41 ?        00:00:00 /usr/sbin/mysqld
mysql     1424     1  1482  0   17 18:41 ?        00:00:00 /usr/sbin/mysqld
mysql     1424     1  1483  0   17 18:41 ?        00:00:00 /usr/sbin/mysqld
mysql     1424     1  1484  0   17 18:41 ?        00:00:00 /usr/sbin/mysqld
mysql     1424     1  1485  0   17 18:41 …
Run Code Online (Sandbox Code Playgroud)

process-management multithreading pid

12
推荐指数
1
解决办法
1万
查看次数