J'ai donc une structure que je veux lire à partir de l'espace utilisateur défini dans l'espace noyau, mais l'espace utilisateur a plusieurs processus.Accéder à une variable dans l'espace noyau à partir de l'espace utilisateur
Exemple:
Dans un module de noyau, j'ai une struct mondiale. struct { int a; int b; } test;
Dans un module de niveau utilisateur, j'ai "externed" que struct global
struct {extern int a; int b; } test;
Le compilateur ne se plaint pas, et l'éditeur de liens ne se plaint pas. Cependant, si l'utilisateur a plusieurs processus, cette structure est-elle clonée pour chaque processus? Si j'utilise la mémoire partagée avec extern, alors je pourrais accéder à la structure du noyau, et si j'ai n processus, alors il n'y a qu'une seule structure depuis son partage. Je peux accéder à une variable au niveau du noyau avec 1 processus au niveau de l'utilisateur, mais si j'ai plus de processus, j'obtiens des clones pour chaque structure qui est "externée"
Ma question est, Est-ce que plusieurs processus au niveau de l'utilisateur peuvent lire un variable au niveau du noyau?
Pouvez-vous poster le code de niveau utilisateur que le compilateur et éditeur de liens ne se plaignent pas? Aussi, le choix du système d'exploitation importe-t-il dans cette question? – ctuffli