понимание требований для execve и установка переменных среды

У нас много проблем с интерпретацией нашего учителя. Мы попросили разъяснений и получили от него следующее

  1. Для execve отправьте ему среду, которую вы настроили с экспортированными переменными, и создайте встроенную команду для создания подоболочки / bin / bash, чтобы вы могли видеть свои экспортированные переменные. используя env.

    (Здесь он говорит о создании наших собственных переменных окружения.)

  2. Да, создавайте свои собственные. Вы можете начать с копирования окружения при запуске вашей оболочки и добавления только экспортированных переменных

Это связано со следующим сообщением о переполнении стека, написанным мной (чтение этого другого сообщения поможет вам понять, что я пытаюсь сделать):

использование нового пути с execve для запуска команды ls

Мы просто очень сбиты с толку по этому поводу. Еще раз объясню, что мы сейчас пытаемся делать. Подобно тому, как это делает ваша оболочка Linux, нам нужно написать нашу собственную программу, которая может устанавливать переменные среды, такие как PATH и USER, и любые другие переменные, которые пользователь хочет определить.

Пример того, как вы могли бы вызвать это, будет (внутри вашей программы по запросу):

mysetenv dog spike

, который создаст переменную окружения, имеющую вид "dog = spike"

Что еще более важно, мы должны иметь возможность установить нашу собственную переменную PATH и отправить ее команде exec .Это сбивает с толку, потому что, исходя из всех наших вопросов, мы не понимаем, что мы должны делать.

12
задан Community 23 May 2017 в 12:34
поделиться