我有一个关于在linux内核模块中创建目录的问题。
我想要的:在内核模块中创建一个目录。
下面是我的实际代码:
struct file *fp = (struct file *) NULL;
fp = filp_open("/home/testdir", O_DIRECTORY|O_CREAT, S_IRUSR);但它创建的是文件而不是目录。
我试着在没有“O_DIRECTORY”标志的情况下像上面一样编写代码:
struct file *fp = (struct file *) NULL;
fp = filp_open("/home/testdir", O_CREAT, S_IRUSR);并且结果与之前的结果相似。
我不明白你的行为。我做错了什么?
编辑1:我在Raspberry PI上编码,Raspbian,内核版本: 4.4.43-v7
发布于 2017-01-25 19:57:07
我自己弄的。解决方案是:
struct file *fp = (struct file *) NULL;
fp = filp_open("/home/testdir/", O_DIRECTORY|O_CREAT, S_IRUSR);注意路径末尾的"/“。
感谢@all的尝试!
发布于 2017-01-25 19:49:00
这不会创建目录,但会像opendir那样打开一个目录(该目录应该存在)。
https://stackoverflow.com/questions/41850722
复制相似问题