我是内核编程的新手.当我尝试在我的角色设备文件代码中使用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, ...)
你选择哪一个取决于你想要怎么称呼它.该源代码sscanf()
显示了如何使用该vssanf()
函数,以防您更喜欢使用varargs调用约定.