Книга: Основы программирования в Linux
read
read
Системный вызов read
считывает до nbytes
байтов данных из файла, ассоциированного с дескриптором файла fildes
, и помещает их в область данных buf
. Он возвращает количество действительно прочитанных байтов, которое может быть меньше требуемого количества. Если вызов read
возвращает 0, ему нечего считывать; он достиг конца файла. Ошибка при вызове заставляет его вернуть -1.
#include <unistd.h>
size_t read(int fildes, void *buf, size_t nbytes);
Программа simple_read.c копирует первые 128 байтов стандартного ввода в стандартный вывод. Она копирует все вводимые данные, если их меньше 128 байтов.
#include <unistd.h>
#include <stdlib.h>
int main() {
char buffer[128];
int nread;
nread = read(0, buffer, 128);
if (nread == -1)
write(2, "A read error has occurredn", 26);
if ((write(1, buffer, nread)) != nread)
write(2, "A write error has occurredn", 27);
exit(0);
}
Если вы выполните программу, то получите следующий результат:
$ echo hello there | ./simple_read
hello there
$ ./simple_read < draft1.txt
Files
In this chapter we will be looking at files and directories and how to
manipulate them. We will learn how to create files, $
Первое выполнение программы с помощью команды echo
формирует некоторый ввод программы, который по каналу передается в вашу программу. Во втором выполнении вы перенаправляете ввод из файла draft1.txt. В этом случае вы видите первую часть указанного файла, появляющуюся в стандартном выводе.
Примечание
Обратите внимание на то, что знак подсказки или приглашения командной оболочки появляется в конце последней строки вывода, поскольку в этом примере 128 байтов не формируют целое число строк.
- Класс StreamReader
- How to read
- 6.6.5 SIGEV_THREAD
- При запуске программы появляется сообщение Инструкция по адресу 0х77ddb1d1 обратилась к памяти по адресу 0x0080002c. Пам...
- В Adobe Acrobat Reader русский текст на экране читается нормально, а при печати получается текст из набора символов. Как...
- 4 A few ways to use threads
- Reading Documentation
- RSS Readers
- The Pan News Client Newsreader
- Функция pthread_rwlock_trywrlock
- Reading Manual Pages with man
- Mounting a Partition as Read-Only on a Running System