Получение элементов символа ** с адреса

Я работаю над программированием ядра (Nachos) и испытываю некоторые затруднения при передаче массива аргументов из пользовательской программы в ядро ​​ядра. Подобно argc, argv в C, C ++, пользовательская программа передает:

char *args

в системный вызов. В ядре я получаю только адрес, где находится аргумент args. Теперь мои мысли заключаются в том, что я могу привести это int к типу char *, а затем получить доступ к массиву через индекс, как в пользовательской программе. Но это дает мне не может получить доступ к ошибкам памяти.

Какие-нибудь мысли?

Я попытался получить доступ к аргументам несколькими способами, они показаны здесь:

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

в дополнение к

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

Затем я попытался получить каждый аргумент через

argv[i]

или же

&argv[i]

Оба дают ошибки доступа к памяти.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]