从地址获取Char **的元素

时间:2014-11-04 04:16:15

标签: c++ c kernel nachos

我正在进行内核编程(Nachos),并且在将一个参数数组从用户程序传递到内核域时遇到了一些麻烦。与cg,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]

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

0 个答案:

没有答案