Интегрированные сети ISDN

         

Данные из стандартного вывода добавляются



Таблица 2. Перенаправление потоков ввода/вывода




Обозначение Выполняемая операция
>файл Стандартный вывод перенаправляется в файл
>>файл Данные из стандартного вывода добавляются в файл
<файл Стандартный ввод перенаправляется в файл
p1|p2 Вывод программы p1 направляется на вход программы p2
n>файл Перенаправление вывода из файла с идентификатором n в файл
n>>файл Тоже, что и в предыдущей строке, но данные добавляются к содержимому файла
n>&m Объединение потоков с идентификаторами n и m
<<str “Ввод здесь” – используется стандартный ввод до подстроки str. При этом осуществляется подстановка метасимволов интерпретатора
<<\str То же, что и в предшествующей строке, но без подстановки.

Символ | иногда называется конвейером. Например, команда:

ps – ef | grep proс

осуществляет вывод данных о конкретном процессе proс. Несколько более корректна команда:

ps – ef | grep proс grep –v grep

так как в потоке, формируемом командой ps, присутствуют две строки, содержащие proс - строка процесса proс и строка процесса grep с параметром proс.
Для запуска выполнения команды в фоновом режиме достаточно завершить ее символов &.
Виртуальная память процесса состоит из сегментов памяти. Размер, содержимое и размещение сегментов определяется самой программой (например, применением библиотек). Исполняемые файлы могут иметь формат COFF (Common Object File Format) и ELF (Executable and Linking Format).
Функция main() является первой, определенной пользователем. Именное ей будет передано управление после формирования соответствующего окружения запускаемой программы. Функция main определяется следующим образом.

main(int argc, char *argv[], char *envp[]);

Аргумент argc определяет число параметров, переданных программе. Указатели на эти параметры передаются с помощью массива argv[], так через argv[0] передается имя программы, argv[1] – несет в себе первый параметр и т.д. до argv[argc-1]. Массив envp[] несет в себе список указателей на переменные окружения, передаваемые программе. Переменные представляют собой строки имя=значение_переменной.
В среде UNIX существует два базовых интерфейса для файлового ввода/вывода.
  1. Интерфейс системных вызовов, непосредственно взаимодействующих с ядром ОС.

  2. Стандартная библиотека ввода-вывода.

С файлом ассоциируется дескриптор, который в свою очередь связан с файловым указателем смещения, начиная с которого будет произведена последующая операция чтения/записи. Каждая операция чтения или записи увеличивает этот указатель на число переданных байтов. При открытии файла указатель принимает значение нуль.

Содержание раздела