ssize_t dev_read(struct file *filp,char *buf,size_t count,loff_t *offset)
{
int len = count >= strlen(chr_arr.array) ? strlen(chr_arr.array) : count;
*offset += len;
if (*offset >= strlen(chr_arr.array))
return 0;
if (copy_to_user(buf,chr_arr.array,len))
return -EFAULT;
return len;
}
我想从内核读取一个值并在用户应用程序中使用它,所以我使用procfs api从内核读取并在用户空间中使用它。
以上是从内核读取并将其存储在用户缓冲区(buf)中的读取函数。但是如果我想从用户应用程序中读取输出那么将从存储在用户空间中的内核中读取值?有人可以帮助我吗?
答案 0 :(得分:0)
如果值在procfs中公开,那么您的用户应用程序只需要将procfs节点作为文件打开并像任何其他文件一样读取它。这些花哨的东西都在内核中完成。
如果您正在尝试编写一个向procfs公开内容的内核组件,那么您需要类似于您引用的代码来处理对procfs节点的read()
调用。< / p>