Где функция системного вызова «sys_getpid» находится в ядре Linux? - PullRequest
2 голосов
/ 18 февраля 2012

Я ищу функцию " getpid " в ядре, но не могу найти фактическую функцию.

Должно быть что-то вроде этого:

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

Все, что я могу найти, это таблицы системных вызовов, а не фактическая реализация этого системного вызова.

Версия ядра: 3.0.20

Заранее спасибо.

1 Ответ

5 голосов
/ 18 февраля 2012

Фактическое определение в 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.

...