• 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
  • 相关阅读:
    CSS 内外边距
    CSS 边框
    android chrome this account already exists on your device
    linux s s r client ubuntu kali
    rEFInd 美化 windows
    sogou opensuse
    Ping 虚拟机 超时
    python3 批量自动下载对应用户 github上的项目 或者 starts 的项目
    materialize 样例
    opensuse input methods
  • 原文地址:https://www.cnblogs.com/soul-stone/p/6131623.html
Copyright © 2020-2023  润新知