创建系统调用函数



我需要创建一个系统调用函数来获取目录的所有子文件夹。但是,我不知道该怎么做。你能给我一些关键词或建议来实现它吗?

asmlinkage long sys_get_child_folder(char* path, char** child_folder);

我闻到XY问题的味道;你想解决的实际问题是什么?

你为什么要为此创建一个新的系统调用?只需打开目录,枚举其所有条目并过滤掉那些不是目录索引节点的条目。执行此操作的规范方法是使用opendir函数。https://linux.die.net/man/3/opendir


还要记住,如果您正在编写应该在内核内部运行的代码,请注意,从内核内部来看,通常的文件系统机制很难实现。原因是,文件系统会生成名称空间,这取决于任务上下文;从内核中访问文件的唯一可靠方法是让用户空间进程打开文件,然后将文件描述符交给一些内核代码。但这是强烈反对的。

最新更新