【发布时间】:2014-06-28 05:34:24
【问题描述】:
我正在编写一个通过ioctl 与用户应用程序通信的内核模块。通信是单向的——也就是说,在正常情况下不需要输出。我的问题是 - 我应该如何向用户应用程序报告错误?
例如,我的模块接受进程 ID 作为输入。假设 PID 无效。我在errno.h 中没有找到匹配的错误代码,所以我需要另一种报告方式。我可以想到几种方法:
- 在公共头文件中定义一个(正)常量
INVALID_PID,将-INVALID_PID作为ioctl调用的返回值返回,并在用户应用程序中处理 - 将有意义的消息打印到内核日志并返回通用错误代码
-
ioctl接收来自用户应用程序的参数 - 我可以将错误消息存储在那里 - 与用户应用程序建立一些双向通信
这样做的标准方法是什么?
谢谢!
【问题讨论】:
标签: c linux kernel-module ioctl