allkillers 发表于 2016-04-19 13:22

文件系统的小例子

写了个内核模块小例子如下:枚举出pwd目录下文件。

struct dentry *pwd = current->fs->pwd.dentry, *tmp;
list_for_each_entry(tmp, &pwd->d_subdirs, d_child) {
    printk(KERN_ALERT "sub dir has : %s\n",tmp->d_name.name);

除了打印出该目录下的文件,还打印出了
2788.tmp
2788.o
2782.tmp
2782.o
等等好多这样的数字命名的文件。

而通过ll命令查看当前目录,
没有那样的数字命名的文件,请问怎么回事?

nswcfd 发表于 2016-04-22 10:41

dentry->name不保证\0结尾,需要结合d-name.length来读。

%.*s, d.length, d.name
页: [1]
查看完整版本: 文件系统的小例子