系统调用函数“sys_getpid”位于linux内核的什么位置?

问题描述 投票:0回答:2

我正在内核中搜索“getpid”函数,但是我找不到实际的函数。

应该是这样的:

asmlinkage long sys_getpid(void)
{
return current-> tgetid;
}

我能找到的只是系统调用表,而不是这个系统调用的实际实现。

内核版本是:3.0.20

提前致谢。

operating-system linux-kernel kernel
2个回答
7
投票

实际定义在

kernel/timer.c
:

/**
 * sys_getpid - return the thread group id of the current process
 *
 * Note, despite the name, this returns the tgid not the pid.  The tgid and
 * the pid are identical unless CLONE_THREAD was specified on clone() in
 * which case the tgid is the same in all threads of the same group.
 *
 * This is SMP safe as current->tgid does not change.
 */
SYSCALL_DEFINE0(getpid)
{
    return task_tgid_vnr(current);
}

task_tgid_vnr
include/linux/sched.h
中的静态内联。


0
投票

我认为对于较新版本的内核,可以在这里找到:

kernel/sys.c
。 与此评论中提到的行相同:https://stackoverflow.com/a/9340934

© www.soinside.com 2019 - 2024. All rights reserved.