[英]Check /proc file from C kernel module
我想在內核空間和用戶空間之間共享一個變量,我發現使用procfs是可能的。 如果設置了給定值,則內核模塊必須以某種方式工作。 用戶空間程序負責更改此值,但是內核模塊必須在必要時讀取它。
我知道我必須在內核模塊中創建/proc
文件。 我的問題是, 如何從內核模塊讀取文件?
來源: linux.die.net/lkmpg/x769.html
/**
* This function is called with the /proc file is written
*
*/
int procfile_write(struct file *file, const char *buffer, unsigned long count,
void *data)
{
/* get buffer size */
procfs_buffer_size = count;
if (procfs_buffer_size > PROCFS_MAX_SIZE ) {
procfs_buffer_size = PROCFS_MAX_SIZE;
}
/* write data to the buffer */
if ( copy_from_user(procfs_buffer, buffer, procfs_buffer_size) ) {
return -EFAULT;
}
return procfs_buffer_size;
}
為了明確起見,每當用戶在procfs中寫入您的文件時,此示例都會說明如何處理此類寫入。
在內核=> 3.10中,將proc_write移至結構file_operations,其中寫入的聲明不同,因此,最新的解決方案將不起作用。 您可以實現典型的file_operations.write(結構文件*,const char __user *,size_t,loff_t *),並將其引用為:
struct proc_dir_entry your_proc_dir_entry{
.proc_fops = &your_fops,
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.