Existe-t-il une fonction C comme sprintf dans le kernel Linux?

Existe-t-il une fonction semblable à sprintf() dans le kernel Linux (comme printf() -> printk() )?

Oui. https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/lib/vsprintf.c#n1828

 int snprintf(char *buf, size_t size, const char *fmt, ...) { va_list args; int i; va_start(args, fmt); i = vsnprintf(buf, size, fmt, args); va_end(args); return i; } EXPORT_SYMBOL(snprintf); 

sprintf() en soi est sujet aux débordements de mémoire tampon. CERT déborde de mémoire tampon , Apple , etc.

Oui, incluez simplement linux / kernel.h

oui il y a check out ici par exemple

vous pouvez utiliser grep pour voir s’il est dans le code source du kernel

L’exécution d’un crash sur un kernel 2.6 en cours confirme que sprintf () est défini et à quel emplacement.

crash> sym sprintf

ffffffff81267ba0 (T) sprintf ../debug/kernel-2.6.39/linux-2.6.39-400.210.2.el6uek/lib/vsprintf.c: 1442