aji*_*red 2 linux kernel scanf
我是内核编程的新手.当我尝试在我的角色设备文件代码中使用scanf时,我收到此错误消息:错误:隐式声明函数'scanf'
我怎么解决这个问题 ?请帮帮我.
我在虚拟盒子里使用linux CentOS.
因为内核没有"标准输入"或"打开文件",所以没有可用的scanf()功能.(好吧,BSD进程记帐是内核打开文件的地方.但内核会写入此文件.)
您正在寻找的替代品被命名为sscanf()或者vsscanf(),两者都在lib/vsprintf.c以下位置定义:
/**
* vsscanf - Unformat a buffer into a list of arguments
* @buf: input buffer
* @fmt: format of buffer
* @args: arguments
*/
int vsscanf(const char *buf, const char *fmt, va_list args)
/**
* sscanf - Unformat a buffer into a list of arguments
* @buf: input buffer
* @fmt: formatting of buffer
* @...: resulting arguments
*/
int sscanf(const char *buf, const char *fmt, ...)
Run Code Online (Sandbox Code Playgroud)
你选择哪一个取决于你想要怎么称呼它.该源代码sscanf()显示了如何使用该vssanf()函数,以防您更喜欢使用varargs调用约定.