【发布时间】:2012-01-01 21:12:39
【问题描述】:
我使用的是 Linux (Ubuntu 11.10)。 好吧,当我调用系统调用 open 时,例如在 C 程序中:
size_t filedesc = open("testfile.txt",O_CREAT | O_WRONLY,0640);
如何访问分区,我的意思是有没有办法返回使用的分区?
系统调用open就是上面定义的:
SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode)
如果我愿意,我可以输入printk("%s",filename) 并查看路径。但是我怎样才能访问分区呢?
一个例子:我在两个不同的分区中有两个档案 example.txt(例如 /dev/sda1 和 /dev/sda2)。
然后我调用系统调用 open:假设我调用了分区 /dev/sda2 中的 example.txt。
有没有办法使用 open 系统调用访问分区(例如,printk(KERN_ALERT "%s",partition))?
【问题讨论】:
-
我不明白你说的是用户领域还是内核领域。我猜它是用户领域(从应用程序中可以看出),但那为什么还要打扰
printk呢? -
你为什么要做所有这些事情?你的解释令人困惑!
-
@Basile 是对的,我对您要完成的工作感到困惑。我想我们在这里有一个XY problem——你问的是如何为一个问题实施解决方案,但如果我们知道你要解决的问题,我们可能会提出更好的建议。那么:您真正想解决什么问题?谢谢
标签: c linux kernel system-calls