gpt4 book ai didi

linux - 如何在linux内核中使用scanf?

转载 作者:太空狗 更新时间:2023-10-29 11:46:55 29 4
gpt4 key购买 nike

我是内核编程的新手。当我尝试在我的字符设备文件代码中使用 scanf 时,我收到此错误消息:error: 函数‘scanf’的隐式声明

我该如何解决这个问题?请帮帮我。

我在 virtual box 中使用 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() 函数,以防您更愿意使用可变参数调用约定。

关于linux - 如何在linux内核中使用scanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8251465/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com