これは、現在のプロセス (つまり、システム コールを発行したプロセス) へのポインターです。
x86 では、arch/x86/include/asm/current.h
で定義されています。 (他のアーチの同様のファイル)
#ifndef _ASM_X86_CURRENT_H
#define _ASM_X86_CURRENT_H
#include <linux/compiler.h>
#include <asm/percpu.h>
#ifndef __ASSEMBLY__
struct task_struct;
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()
#endif /* __ASSEMBLY__ */
#endif /* _ASM_X86_CURRENT_H */
詳細については、Linux デバイス ドライバーの第 2 章を参照してください:
<ブロック引用>現在のポインターは、現在実行中のユーザー プロセスを参照します。 open や read などのシステム コールの実行中、現在のプロセスはその呼び出しを呼び出したプロセスです。カーネル コードは、必要に応じて current を使用してプロセス固有の情報を使用できます。 [...]
Current
struct task_struct
型のグローバル変数です .その定義は [1] にあります。
Files
struct files_struct
です 現在のプロセスで使用されているファイルの情報が含まれています。
[1] http://students.mimuw.edu.pl/SO/LabLinux/PROCESY/ZRODLA/sched.h.html