proc文件(OLD)

写一个模块测试proc文件的读写:

 1 #include linux/module.h  
 2 #include linux/kernel.h  
 3 #include linux/proc_fs.h  
 4 #include linux/sched.h  
 5 #include asm/uaccess.h  
 6  
 7 #define STRINGLEN 1024  
 8  
 9 char global_buffer[STRINGLEN];  
10  
11 struct proc_dir_entry *example_dir, *hello_file;  
12  
13 int proc_read_hello(char *page, char **start, off_t off, int count, int *eof,  
14                 void *data) {  
15         int len;  
16         len = sprintf(page, global_buffer); //把global_buffer的内容显示给访问者  
17         return len;  
18 }  
19  
20 int proc_write_hello(struct file *file, const char *buffer, unsigned long count,  
21                 void *data) {  
22         int len;  
23  
24         if (count = STRINGLEN)  
25                 len = STRINGLEN – 1;  
26         else  
27                 len = count;  
28  
29         copy_from_user(global_buffer, buffer, len);  
30         global_buffer[len] = \0′;  
31         return len;  
32 }  
33  
34 static int __init proc_test_init(void) {  
35         example_dir = proc_mkdir("proc_test", NULL);  
36         hello_file = create_proc_entry("hello", S_IRUGO, example_dir);  
37         strcpy(global_buffer, "hello");  
38         hello_file->read_proc = proc_read_hello;  
39         hello_file->write_proc = proc_write_hello;  
40         return 0;  
41 }  
42  
43 static void __exit proc_test_exit(void) {  
44         remove_proc_entry("hello", example_dir);  
45         remove_proc_entry(“proc_test”, NULL);  
46 }  
47  
48 module_init(proc_test_init);  
49 module_exit(proc_test_exit);  

 


写入proc文件

echo "Hello from kernel" /proc/proc_test/hello'

读取proc文件内容,将看到屏幕上显示了我们写入的字符串:Hello from kernel

cat /proc/proc_test/hello
posted @ 2016-12-04 19:51  soul.stone  阅读(213)  评论(0编辑  收藏  举报