Интегрированные сети 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. Стандартная библиотека ввода-вывода.

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




Начало  Назад  Вперед