使用python读取/ proc文件

时间:2015-04-27 00:44:30

标签: python linux-kernel kernel-module

我正在尝试将简单的防火墙实现为linux内核模块,它使用procfs与用户空间应用程序(用python编写)进行通信。一切正常,但从/ proc / file读取。

这是我在客户端上执行的代码:

if os.path.isfile(PROCFS_PATH) and os.access(PROCFS_PATH,os.R_OK):
    myfile = open(PROCFS_PATH,'r')
    for line in myfile:
        print line.rstrip("\n")

    myfile.close()

这只是一个简单的印刷品。

这是来自内核模块的proc readfile:

static ssize_t procRead(struct file *fp, char *buffer, size_t len, loff_t *offset){

static int finished = 0;

if(finished)
{
    printk(KERN_INFO "proc read finished. Read: %s\n", buffer);
    finished = 0;
    return 0;
}

finished = 1;

if(copy_to_user(buffer, buf, procBuffSize))
    return -EFAULT;

printk(KERN_INFO "read %lu bytes\n", procBuffSize);

return procBuffSize;

}

猜猜,它应该没问题,但问题是我在尝试阅读时在我的客户端中遇到了MemoryError。在momment / proc / file包含简单的防火墙规则,包含20个字符,因此文件大小不会有问题。什么是?

0 个答案:

没有答案