Quantcast
Channel: Active questions tagged kernel - Stack Overflow
Viewing all articles
Browse latest Browse all 6334

How to read files in linux kernel after 5.10+

$
0
0

Sorry I'm a beginner,this question is stupid.

My linux kernel is "5.11.0-36-generic".

I want to read parameter from a file named "myTest.txt".

after make,terminal says:

error: implicit declaration of function ‘get_fs’; did you mean ‘sget_fc’? [-Werror=implicit-function-declaration]

then,i search for answers,find that:Saying goodbye to set_fs().https://lwn.net/Articles/832121/

Can anyone tell me how to replace it?

thanks !!!

#include <linux/module.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/uaccess.h>#include <linux/string.h>#include <linux/slab.h>int __init hello_init(void)  {      unsigned char buf1[12]="hello world.";    unsigned char buf2[12]="kernel file.";    struct file *fp;      mm_segment_t fs;      loff_t pos;     printk("hello enter\n");      fp = filp_open("/home/kernel_file", O_RDWR | O_CREAT, 0644);      if (IS_ERR(fp)) {          printk("create file error\n");          return -1;      }     fs = get_fs();  //------------------------wrong !!    set_fs(KERNEL_DS);//------------------------wrong !!    pos = fp->f_pos;     vfs_write(fp, buf1, sizeof(buf1), &pos);      fp->f_pos = pos;    pos = fp->f_pos;     vfs_write(fp, buf2, sizeof(buf2), &pos);      fp->f_pos = pos;      set_fs(fs); //------------------------wrong !!    filp_close(fp, NULL);      return 0;  }  void __exit hello_exit(void)  {      printk(" exit\n");  }  module_init(hello_init);  module_exit(hello_exit);  MODULE_LICENSE("GPL");  

Viewing all articles
Browse latest Browse all 6334

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>