[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Копирование ввода в вывод - Пример
Программа копирует данные из стандартного ввода, файловый дескриптор
0, в стандартный вывод, файловый дескриптор 1. Файловые дескрипторы 0,
1 и 2 (стандартный вывод диагностики) открываются при запуске
программы. Обычно они связаны с терминальным устройством. Это можно
изменить, используя перенаправление ввода/вывода в командной строке.
Эта программа работает следующим образом:
2 файл <stdio.h> содержит определение BUFSIZ.
7 buf объявлен достаточно большим для вызова read(2)
10-11 требуется прочесть BUFSIZ байт. Истинное число считанных
байт присваивается n и в обычной ситуации равно BUFSIZ. n может быть
меньше BUFSIZ, если читается оставшаяся часть файла или если ввод
осуществляется с терминала. Если данных больше нет, возвращается 0,
что указывает конец файла. В каждой итерации цикла читается n байт.
Для запуска программы наберите:
$ stdcopy <file1 >file2
Файл: stdcopy.c
КОПИРОВАНИЕ ВВОДА В ВЫВОД - ПРИМЕР
1 #include <unistd.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 main()
6 {
7 char buf[BUFSIZ];
8 int n;
9
10 while ((n = read(0, buf, BUFSIZ)) > 0)
11 write(1, buf, n);
12 exit(0);
13 }