qu'est-ce que le “courant” dans les sources du noyau linux
Je suis étudiant sur le noyau linux et j'ai un problème
Je vois beaucoup de noyau linux, les fichiers source de courant->fichiers. Donc, qu'est-ce que le "courant"?
struct file *fget(unsigned int fd)
{
struct file *file;
struct files_struct *files = current->files;
rcu_read_lock();
file = fcheck_files(files, fd);
if (file) {
/* File object ref couldn't be taken */
if (file->f_mode & FMODE_PATH ||
!atomic_long_inc_not_zero(&file->f_count))
file = NULL;
}
rcu_read_unlock();
return file;
}
Exemple?
current
est vraiment un générique nom de la variable.OriginalL'auteur Kahn Cse | 2012-09-15
Vous devez vous connecter pour publier un commentaire.
C'est un pointeur vers le processus actuel (c'est à dire le processus qui a émis l'appel système).
Sur x86, il est défini dans
arch/x86/include/current.h
(fichiers similaires pour les autres architectures).Plus d'informations dans Linux Pilotes De Périphérique chapitre 2:
OriginalL'auteur Mat
Current
est une variable globale de typestruct task_struct
. Vous pouvez trouver que c'est une définition [1].Files
est unstruct files_struct
et il contient les informations des fichiers utilisés par le processus courant.[1] http://students.mimuw.edu.pl/SO/LabLinux/PROCESY/ZRODLA/sched.h.html
current
n'est pas une variable mais un#define
à une fonction qui renvoiestruct task_struct *
OriginalL'auteur coredump