0

我正在研究内核编程(Nachos),并且在将一组参数从用户程序传递到内核域时遇到了一些麻烦。与C、C++中的argc、argv类似,用户程序通过:

char *args

进入系统调用。在内核中,我只得到 args 所在的地址。现在,我的想法是我可以将此 int 转换为 char*,然后像在用户程序中一样通过下标访问数组。但这给了我无法访问内存错误。

有什么想法吗?

我尝试了几种访问 args 的方法,它们显示在这里:

char *argv = (char *) ReadRegister() // ReadRegister returns an int, addr of args

此外

char **argv = (char **) ReadRegister()

然后我尝试通过任一方式获取每个参数

argv[i]

或者

&argv[i]

两者都给出内存访问错误。

4

0 回答 0