Skip to content

Educational project for KasperskyOS IPC programming training.

Notifications You must be signed in to change notification settings

AlxLifanov/hello_env

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Пример использования аргументов и переменных окружения в KasperskyOS

Назначение

Пример предназначен для целей обучения разработке в KasperskyOS. Это модификация стандартного примера Hello из SDK. Пример тестировался с KasperskyOS CE SDK v 1.1.1.13.

Пример демонстрирует две механики:

  • Запуск двух процессов с разным функционированием из одного исходника
  • Простые механики передачи и приема аргументов и переменных окружения

Запуск двух процессов

В примере имеется один исполнимый класс hello.Hello, из которого запускаются два процесса - hello.Hello1 и hello.Hello2. Запуск выполняется директивами init.yaml.in (разные task, одинаковый name). В логе запуска виден один исполнимый файл внутри образа.

Такой метод является рекомендованным, т.к. экономит место на диске.

Передача аргументов и переменных окружения

Передача аргументов и переменных окружения выполняется наиболее простым способом - директивами init.yaml.in. Другие способы - при помощи программы Env и через структуру EntityInfo для ручного запуска процесса- рассмотрены в документации.

Прием аргументов выполняется штатным для языка C образом - через аргументы вызова функции main(). Параметр argc - количество доступных аргументов. Массив argv - сами аргументы, причем в нулевой позиции лежит имя исполнимого файла.

Прием переменных окружения также выполняется стандартно - функцией getenv из библиотеки stdlib.

Обратите внимание, что фактически внутри процесса и аргументы, и переменные окружения работают одинаково - их значения доступны process-wide, а не system-wide.

Установка и использование

  1. Подготовьте машину разработки согласно мануалу.
  2. Установите KasperskyOS Community Edition SDK.
  3. Скопируйте этот пример в домашнюю папку пользователя, проверьте права на запись в папку.
  4. Запустите ./cross-build.sh.

Лицензия

Распространяется "as is" без принятия какой-либо ответственности. Применимы все ограничения оригинальной лицензии KOS CE SDK.

Вопросы просьба задавать в форуме: https://kas.pr/kosforum .