|
我想在内核中读写普通文件,从网上也找了相关的资料,但是实际修改了以后,一调用打开文件的函数,就会死机,不知道什么原因!但是打开特殊文件proc,不会死机!
我编写一个模块试验可以成功!但是修改内核 文件 net/core/dev.c 中函数netif_receive_skb(),试图在数据包往网络层传递前,提取数据包中的信息,写到指定文件中,现在只能写到特殊文件proc目录下,一调用open或sys_open或filp_open就会死机!系众高手在百忙之中给予指点,不胜感激!
简单程序:
int netif_receive_skb(struct sk_buff *skb)
{
//此处省略一些变量定义及简单操作
//以下为添加代码
//if the protocol is pppoe or ppp,then do
if( skb->protocol == htons(ETH_P_PPP_DISC)
|| skb->protocol == htons(ETH_P_PPP_SES) )
{
old_fs = get_fs();
set_fs(KERNEL_DS);
fd = sys_open("/poe",O_RDWR|O_CREAT,0);
if(fd)
{
printk(" in file \n");
//sys_write(fd,skb->data,skb->data_len);
//sys_close(fd);
close(fd);
}
set_fs(old_fs);
//其它操作
}
//其它操作
} |
|