Книга: Программирование для Linux. Профессиональный подход
Листинг 3.2. (system.c) Использование функции system()
Листинг 3.2. (system.c) Использование функции system()
#include <stdlib.h>
int main() {
int return_value;
return_value = system("ls -l /");
return return_value;
}
Функция system()
возвращает код завершения указанной команды. Если интерпретатор не может быть запущен, возвращается значение 127, а в случае возникновения других ошибок — -1.
Поскольку функция system()
запускает интерпретатор команд, она подвержена всем тем ограничениям безопасности, что и системный интерпретатор. Рассчитывать на наличие какой-то конкретной версии Bourne shell не приходится. В большинстве UNIX-систем программа /bin/sh
представляет собой символическую ссылку на другой интерпретатор. В Linux — это bash
(Bourne-Again SHell), причем в разных дистрибутивах присутствуют разные его версии. Вызов из функции system()
программы с привилегиями пользователя root
также может иметь неодинаковые последствия в разных системах. Таким образом, лучше создавать процессы с помощью функций fork()
и exec()
.
- 3.2.1. Функция system()
- Функция sem_close
- Использование констант внешних объектов
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Восстановление с использованием инструмента gbak
- Типы страниц и их использование
- Использование констант
- Аргументы функции в Python
- Использование переменной окружения ISC_PATH
- Использование сервера Yaffil внутри процесса
- Использование CAST() с типами дата
- 3. Функции