9
votes

Quel est l'équivalent du noyau Linux à la fonction MEMSET?

J'écris un conducteur qui me demande d'effacer toute la mémoire allouée à zéro. Memset est une fonction d'espace utilisateur, mais j'aimerais savoir si le noyau fournit une macro qui m'aide à faire cela.


3 commentaires

Je crois que memset est disponible pour le code de noyau sous Linux.


Bonne question. Je m'inquiétais moi moi-même. Lorsque vous travaillez pour la première fois sur le code du noyau, vous avez tendance à vous faire prendre dans la mentalité que rien n'est disponible dans l'espace du noyau disponible dans l'espace utilisateur. Si vous essayez de l'essayer, vous devriez voir que cela fonctionne comme prévu.


@anthony: Une autre façon est de regarder les en-têtes :)


3 Réponses :


7
votes

Selon Ce fil et les gens commentant ici qui ont Utilisé, memset est disponible dans le code du noyau. Peut-être que vous venez d'oublier xxx


4 commentaires

D'accord, je l'ai utilisé auparavant dans le noyau et cela a bien fonctionné.


@anthony: merci pour l'info :)


Hey merci, je viens de supposer que puisque c'était un en-tête qu'il relie à une bibliothèque de l'espace utilisateur que vous ne pouvez pas faire dans le noyau. Je vais essayer.


Lol, la merde sacrée ça marche, lol. C'est bizarre, je me demande quel fichier d'en-tête il a été inclus dans ... peut-être ou quelque chose. C'est assez soigné.



21
votes

C'est vrai memset () dans xxx

non censé apparaître dans le code du noyau. Et le fait est-il peut vous coûter beaucoup de descendre là où < Code> Memset () est inclus lors du développement du conducteur. Effectivement memset () est défini dans xxx

il dit: xxx

espoir cette aide vous tapez 'MEMSET ()' avec 100% sûr :)


1 commentaires

Actuellement, il ne compile pas avec le simple #include



1
votes

Je l'ai regardé dans un livre de développement de pilote Linux que j'ai (c'est allemand, donc je vais donner une traduction en vrac de ce qu'elle dit fondamentalement) et cela donne la description suivante:

#include <linux/string.h> /* for memset() and memcpy() */


0 commentaires