0

カーネルとユーザー空間の間で変数を共有したいのですが、procfsで可能であることがわかりました。指定された値が設定されている場合、カーネルモジュールは特定の方法で動作する必要があります。ユーザー空間プログラムはこの値を変更する責任がありますが、カーネル モジュールは必要に応じてそれを読み取る必要があります。

/procカーネルモジュールでファイルを作成する必要があることはわかっています。私の質問は、カーネルモジュールからファイルを読み取る方法ですか?

4

2 に答える 2

0

ソース: 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であなたのファイルに書き込むたびにあなたのモジュールで、この例はそのような書き込みを処理する方法を示しています。

于 2014-01-25T13:50:17.423 に答える