Articles of module

Puis-je utiliser strtok () dans un module de kernel Linux?

Je dois parsingr les données écrites dans mon module et utiliser la fonction strtok () de ssortingng.h serait utile. Cependant j’ai essayé #include et #include sans succès. Est-ce possible? Ou devrais-je écrire ma propre fonction strtok? Merci

C: Les maths derrière les négatifs et le rest

Cela semble être la chose la plus demandée quand on traite de Remainder / Mod, et je suis en quelque sorte en train de heurter un mur. J’apprends à programmer avec un manuel et un mandrin de code C. Voyant que je n’ai pas vraiment d’instructeur pour dire: “Non, non. En fait, ça marche comme […]

Nf_hook_ops renvoie un pointeur incompatible lors de l’atsortingbution de hook_func -C -Linux -Netfilter

J’essaie d’écrire mon propre module de kernel Netfilter sur Ubuntu 16.04 LTS, j’essaie d’atsortingbuer hook_func à nfho.hook, mais l’erreur suivante apparaît: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] nfho.hook = hook_func; J’ai examiné d’autres solutions, notamment des parameters de double vérification, notamment la modification de *skb en **skb . J’ai lu que les parameters pouvaient […]

C: L’opérateur de module sur unsigned int donne une sortie inattendue

#include main() { unsigned a = -20; unsigned b = 10; printf(“%d\n”, (a % b)); printf(“%d\n”, (-20 % 10)); } Output: 6 0 La seconde printf imprime la valeur attendue de 0 tandis que la première printf en imprime 6. Pourquoi cette sortie inattendue avec des enties non signées?

Fil de données locales dans le module de kernel Linux

Est-il possible de créer des données locales de thread dans un module de kernel Linux? J’ai besoin de stocker des données pour chaque processus / thread appelant mon module. Existe-t-il un moyen simple d’utiliser les données locales des threads ou dois-je recourir à l’écriture d’une carte de hachage utilisant le pid du processus en cours […]

Comment créer un répertoire dans l’espace utilisateur dans un module du kernel Linux

Ce qui suit va créer un fichier dans l’espace utilisateur mais comment puis-je créer un répertoire? struct file *filp = filp_open(“/home/myuser/Desktop/newfile”, O_CREAT, S_IRWXU);

renvoie le code d’erreur http à partir du module CGI C

J’ai un module CGI écrit en C & pour certaines conditions, je veux renvoyer l’erreur HTTP 400 de ce module. Le problème est – je ne sais pas comment renvoyer l’erreur HTTP du module. Ressemble à ‘retour (-1)’ dans mon module, renvoie l’erreur de serveur interne 500. J’ai essayé de retourner 400, mais dans la […]

Est-il possible de tester le code du module de kernel?

Si oui, quelle technique devrais-je utiliser? Je pense à utiliser hippomock car ils peuvent être utilisés pour se moquer des méthodes “C”. Y a-t-il de meilleures approches? Si tel est le cas, quelqu’un peut-il donner un conseil ou pensez-vous que le test unitaire pour le kernel est excessif?

linux / init.h: Aucun fichier ou répertoire de ce type

J’essaie de construire un module de kernel pour une classe de la mienne et j’obtiens un mur d’erreurs, mais en haut de ce mur se trouve la fameuse erreur «Aucun fichier ou répertoire». Cela semble être la racine du problème. Cela semble non seulement affecter init.h, mais aussi module.h et kernel.h. Les trois premières lignes […]

Ajouter dynamicment des entrées à sysctl

Considérons ce code: int procmon_state = 0; static struct ctl_table_header *procmon_table_header; static ctl_table state_table[] = { { .procname = “state”, .mode = 0666, .proc_handler = &proc_dointvec_minmax, .data = &procmon_state, .maxlen = sizeof(int), .extra1 = “\x00\x00\x00\x00” /*0*/, .extra2 = “\x01\x00\x00\x00” /*1*/ }, { 0 } }; static ctl_table procmon_table[] = { { .procname = “procmon”, .mode […]