当前位置:  开发笔记 > 运维 > 正文

如何在linux内核中使用scanf?

如何解决《如何在linux内核中使用scanf?》经验,为你挑选了1个好方法。

我是内核编程的新手.当我尝试在我的角色设备文件代码中使用scanf时,我收到此错误消息:错误:隐式声明函数'scanf'

我怎么解决这个问题 ?请帮帮我.

我在虚拟盒子里使用linux CentOS.



1> sarnold..:

因为内核没有"标准输入"或"打开文件",所以没有可用的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调用约定.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有