webentwicklung-frage-antwort-db.com.de

Gibt es eine C-Funktion wie sprintf im Linux-Kernel?

Gibt es eine Funktion wie sprintf() im Linux-Kernel (wie printf()-> printk())?

19
Alex

ja. 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() selbst neigt zu Pufferüberläufen. CERT Pufferüberläufe , Apple etc

19

Ja, fügen Sie einfach linux/kernel.h hinzu

1
stackoverflow

Das Ausführen eines Absturzes auf einem 2.6er Kernel bestätigt, dass sprintf () definiert ist und wo es definiert ist.

absturz> Sym Sprintf

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

0
clearlight

ja da ist check out hier zum beispiel 

sie können grep verwenden, um zu sehen, ob es im Quellcode des Kernels enthalten ist

0
0x90