2012-08-24 32 views
-1

我正在开发用于执行Linkedlist操作的应用程序(用户空间)。开发与内核通信的应用程序

我想开发一个内核模块(A),它具有链表操作的功能。和应用程序(用户空间)获取一些处理输入值,并且应该通过kernelmodule(A)中的函数处理值。

  1. 如何将用户空间的值输入到内核模块。
  2. 如何将结果从内核模块(A)发送到我的用户空间应用程序?
  3. 如何从应用程序调用内核模块(A)中的函数和变量。

我的应用程序可以c程序?

+2

为什么?这是功课吗? – unwind

+0

是[展开](http://stackoverflow.com/users/28169/unwind)。我是新来的。我无法向我的主人求助。我需要完成任务 –

回答

1

您可以创建一个字符驱动接口来发送值内核空间,使用ioctl函数将用户空间数据指针发送到内核空间。在内核空间中使用copy_from_user()将用户数据复制到内核空间。

在链表操作的情况下,结果可能是成功或失败,它可以返回内核函数ioctl

的返回值调用函数,你可以将信息发送到识别功能提到被称为在第一段

+0

嗨[dragonyear](http://stackoverflow.com/users/1622292/dragonyear)请创建一些非常简单的程序来演示这一点。我通过网络搜索,我无法找到。请帮助我。我是新来的。 –

+0

还值得指出的是,ioctl()不是唯一的方法(或甚至是最好的方法)来做到这一点。你可以读/写设备节点,或者(这通常是最好也是最简单的方式)使用netlink套接字。 –