# include < unistd.h >
long sysconf (int name);
Ще одним обмеженням при використанні функцій сімейства exec та інших функцій, які застосовуються для створення процесів, є максимальна кількість процесів, що виконуються одночасно, яке доступне для одного користувача. Щоб функція sysconf () повернула дане число, її параметру name необхідно передати значення _SC_CHILD_MAX.
2.6. Читання та встановлення змінних середовища
Змінні середовища, це стрічки з нульовими символами в кінці, в яких зберігається наступна системна інформація: шляхи до каталогів, які містять команди, бібліотеки, функції і процедури які використовує процес. Їх можна також використовувати для передачі довільних визначених користувачем даних між батьківським і дочірнім процесами. Вони забезпечують механізм надання процесу спеціальної інформації без необхідності жорсткої її сполучення з кодом програми. Змінні середовища визначені системою і спільно використовуються всіма її оболонками та процесами. Ці змінні ініціюються файлами запуску. Частіше всього використовуються наступні системні змінні.
$HOME | Повне складене ім'я користувача |
$PATH | Список каталогів для файлів, що виконуються при виконанні команд |
Повне складене ім'я поштового ящика користувача | |
$USER | Ідентифікатор (id) користувача |
$SHELL | Повне складене ім'я командної оболонки зареєстрованого користувача |
$TERM | Тип терміналу користувача |
Змінні середовища можуть зберігатися у файлі або у списку, які належать середовищу. Даний список середовища містить вказівники на стрічки з нульовими символами в кінці. Коли процес починає виконання, змінна
extern char **environ
буде вказувати на список середовища. Стрічки які складають список середовища, мають наступний формат:
name = value
Процеси ініційовані за допомогою функцій execl (),execlp (),execv () і execvp (), успадковують конфігурацію середовища батьківського процесу. Процеси, ініційовані за допомогою функцій execve () і execle (), самі встановлюють середовище.
Існують функції та утиліти, які дозволяють опитати, добавити або модифікувати змінні середовища. Функція getevn ()використовується для визначення факту встановлення заданої змінної. Змінна, яка вас цікавить задається за допомогою параметру name. Якщо задана змінна не встановлена, функція повертає значення NULL. В інакшому випадку (якщо змінна встановлена), функція повертає вказівник на стрічку, яка містить її значення.