Ваш код должен работать. Вероятно, вам не хватает заголовка.
current
- переменная per-cpu, определенная в linux/arch/x86/include/asm/current.h
(весь код относится к случаю x86):
DECLARE_PER_CPU(struct task_struct *, current_task);
static __always_inline struct task_struct *get_current(void)
{
return percpu_read_stable(current_task);
}
#define current get_current()
current
указывает на задачу, выполняемую на процессоре в данный момент. Его тип struct task_struct
и определен в linux/include/linux/sched.h
:
struct task_struct {
...
pid_t pid; // process identifier
pid_t tgid; // process thread group id
...
};
Вы можете просмотреть код для этих файлов в Linux Cross Reference :