簡體   English   中英

從C內核模塊檢查/ proc文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM