小编Mak*_*akc的帖子

按设备名称获取设备标志

希望你能帮助我:我正在尝试确定设备是否可移动,我所拥有的只是设备名称(/ dev/sdc).实际上,我需要通过此文件的完整路径确定可移动媒体上的文件或本地磁盘上的文件.

试着current-> fs-> pwd中搜索, 我在这里找到的是一组标志:*current-> fs-> pwd.mnt-> mnt_sb-> frostdev-> bd_disk-> flags*其中GENHD_FL_REMOVABLE设置为可移动设备

但我总是得到相同的标志集(据我所知,greasedev总是指向同一个设备(/ dev/sda)).

所以现在我通过解析mtab得到包含我的文件的设备名称(/ dev/sdc),但仍然找不到,可以删除它.

是否有可能通过设备名称获取block_device结构?(例如,"file"结构可以通过调用fd = open("name")fl = fged(fd)获得,其中fl指向"file"结构)

c linux kernel block-device

7
推荐指数
1
解决办法
926
查看次数

从内核分配用户空间内存

我正试着打电话

sys_readlink(const char __user *path, char __user *buf, int bufsiz)
Run Code Online (Sandbox Code Playgroud)

直接,但获取EFAULT错误代码.出现此错误是因为buf指向内核空间的内存.

那么,是否有可能从内核分配用户空间内存?

kmalloc(size, GFP_USER)类似于kmalloc(size, GFP_KERNEL) 并返回指向内核内存的指针.

c linux memory kernel memory-management

3
推荐指数
1
解决办法
3630
查看次数

Python疯狂的可变性

这段代码应该打印什么?

class Parent():
    class Meta(object):
        classattr = "Hello"

class Child(Parent):
    pass


Child.Meta.classattr = "world"


ch = Child()
pr = Parent()

ch.Meta.classattr = "Oppa"

print Parent.Meta.classattr
print Child.Meta.classattr

print pr.Meta.classattr
print ch.Meta.classattr
Run Code Online (Sandbox Code Playgroud)

我期待以下:

Hello
world
Hello
Oppa
Run Code Online (Sandbox Code Playgroud)

但得到了

Oppa
Oppa
Oppa
Oppa
Run Code Online (Sandbox Code Playgroud)

所以......我可以通过修改子类实例来修改父类(而不是实例!).这是正常的吗?

python inheritance mutability

3
推荐指数
1
解决办法
84
查看次数