创建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
#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
相关文章推荐
- ★实验 8-1 1. 创建一个守候进程。并为自己创建独立的日志文件。 2. 每隔 1s 向日志文件中写入如下信息: a) 未使用的内存大小(MemFree) 可以从/proc/meminf
- ★实验 8-2 1. 创建两个守候进程。每个守候进程各自创建独立的日志文件。 2. 每隔 1s 向日志文件中写入如下信息: a) 守候进程 1:未使用的内存大小(MemFree) b) 守
- 如何创建内存映射文件,并对其进行写入与读取数据
- 58.大数据读入内存快速排序并写入内存,创建排序好的文件
- C# winform 创建新文件--写入文本并另存为
- ubuntu/linux mint 创建proc文件的三种方法(四)
- android中将数据写入手机内存和sdcard中的文件
- Linux内核和用户空间通信的方式(一)— proc文件和mmap共享内存
- linux 创建proc 文件
- 关于java中创建文件,并且写入内容
- [Linux文件]每隔1分钟创建一个文件,并且每隔1秒将当前时间信息写入到文件
- Git 提交失败提示无写入权限与 Linux 下创建文件的默认权限
- JAVA 创建TXT文件,写入文件内容,读取文件内容
- 浅析proc文件系统的创建和create_proc_read_entry函数的具体实现
- 创建目录以及文件写入
- 创建txt文件,并且写入内容
- 使用ZwMapViewOfSection创建内存映射文件总结
- 将内存中的对象写入到二进制文件,然后从文件中加载到内存
- 关于java中创建文件,并且写入内容
- C#创建文件并往文件中写入信息