在Linux内核中是否有类似sprintf的C函数?

Ale*_*lex 20 c printf linux-kernel

是否有类似sprintf()Linux内核的功能(如printf()- > printk())?

Dmi*_*kin 20

是. 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);
Run Code Online (Sandbox Code Playgroud)

sprintf()本身容易出现缓冲区溢出.CERT缓冲区溢出,Apple

  • 这个答案是对的.上面提到的代码没有内置到内核中.内核中可用的sprintf()版本在lib/vsprintf.c中.我编辑了答案,但被不知道他们在谈论什么的人拒绝了. (3认同)