Why writing files from the kernel is bad ?
Reasons
The question "how to I open/read/write files from the kernel ?" is often asked on the kernelnewbies mailing list. However, the question cannot really be answered: opening, reading and writing files from within the kernel is usually a bad idea. Generally speaking, trying to use any of the sys_*() functions from the kernel itself is a bad idea.
For several reasons:
- it is not the role of the kernel
== The good ways ===
There are several ways to exchange informations between userspace and the kernel, and the one to use really depends on what you want to do:
- kernel module parameters are useful to set general configuration options for your modules
[http://sosdg.org/~coywolf/lxr/source/Documentation/filesystems/sysfs.txt sysfs] is useful to get/set attributes to devices
[http://lwn.net/Articles/115405/ debugfs]
[http://sosdg.org/~coywolf/lxr/source/Documentation/filesystems/relayfs.txt relayfs]
- netlink sockets
Using /proc is not anymore a good idea these days, except if you want to export information related to processes.