Книга: Linux программирование в примерах
4.1. Введение в модель ввода/вывода Linux/Unix
4.1. Введение в модель ввода/вывода Linux/Unix
Модель API Linux/Unix для ввода/вывода проста. Ее можно суммировать четырьмя словами. открыть, прочитать, записать, закрыть. Фактически, это имена системных вызовов: open()
, read()
, write()
, close()
. Вот их объявления:
#include <sys/types.h> /* POSIX */
#include <sys/stat.h> /* для mode_t */
#include <fcntl.h> /* для flags для open() */
#include <unistd.h> /* для ssize_t */
int open(const char *pathname, int flags, mode_t mode);
ssize_t read(int fd, void *buf, size_t count);
ssize_t write(int fd, const void *buf, size_t count);
int close(int fd);
В следующем и дальнейших разделах мы проиллюстрируем модель, написав очень простую версию cat
. Она так проста, что даже не имеет опций; все, что она делает, — объединяет содержимое двух именованных файлов и выводит его в стандартный вывод. Она выводит минимум сообщений об ошибках. Написав, мы сравним ее с V7 cat
.
Мы представим программу сверху вниз, начав с командной строки. В последующих разделах мы представим обработку ошибок, а затем перейдем к сущностным задачам, показав, каким образом осуществляется реальный файловый ввод/вывод.
- 4.1. Введение в модель ввода
- 1.1. Введение в объектно-ориентированное программирование
- 9.1. Введение
- Введение
- 7.4. Модель системы автоматизированного проектирования защиты информации
- 5. Продукционная модель знаний
- 1.6 Драйверы и буферы ввода-вывода
- 2.3 Модель мини-драйвера IDE
- 7.1 Общая информационная модель и стандарт WBEM
- 1 Введение в Linux
- Глава 4 Файлы и файловый ввод