更改Fork()系统调用

时间:2011-02-09 23:53:00

标签: c linux fork system-calls

您好我正在尝试创建一个系统调用来计算被调用的分叉数。我打算更改fork系统调用,以便它有一个计数器来跟踪fork()被调用的次数。我计划在fork.h中添加一个静态变量,然后每次调用fork.c时都增加它。我根本不明白fork.c中发生了什么。这甚至是正确的方法吗?

2 个答案:

答案 0 :(得分:9)

Linux内核已经保留了整个系统中分叉总数的计数。

copy_process()执行的任务之一,其中涉及分叉的大部分工作,都是increment the total_forks counter

此计数器作为processes中的/proc/stat行(代码here)向用户地区公开。

答案 1 :(得分:1)

fork的源代码可以在<linux kernel source tree>/kernel/fork.c文件中找到。该函数是do_fork。您可以在返回错误的else语句之前添加代码。请记住,您必须使用这个新内核进行编译和重新启动。