您的位置:首页 > 其它

创建Proc文件--并向内存中写入Hello World!!

2013-11-16 22:52 239 查看
#include<linux/module.h>

#include<linux/kernel.h>

#include<linux/proc_fs.h>

#include<linux/init.h>

#define profile_name "Protest"

struct proc_dir_entry* our_proc_file;

int profile_read(char* buffer,char** buffer_location,off_t off_set,int* buf_length,int* eof,void* data)

{

int ret ;

ret = sprintf(buffer,"Hello world!!\n");

return ret;

}

int proc_init()

{

our_proc_file = create_proc_entry(profile_name,0644,NULL);//NULL means it's father is Proc

if(our_proc_file == NULL)

{

remove_proc_entry(profile_name,NULL);

printk(KERN_ALERT"ERROR:could not initialize /proc/%s\n",profile_name);

return -ENOMEM;

}

our_proc_file->read_proc = profile_read;

//our_proc_file->owenr = THIS_MODULE;

our_proc_file->mode = S_IFREG | S_IRUGO;

our_proc_file->uid = 0;

our_proc_file->gid = 0;

our_proc_file->size = 37;

printk("/proc/%s created!!\n",profile_name);

return 0;

}

void proc_exit()

{

remove_proc_entry(profile_name,NULL);

printk(KERN_INFO"/proc/%s removed!!\n",profile_name);

}

module_init(proc_init);

module_exit(proc_exit);

要利用makefile来编译

ifneq ($(KERNELRELEASE),)

obj-m := proc.o

else

KDIR := ../5-3-1/linux-2.6.38

all:

make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-

clean:

rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul*

endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐