Функции read и write, как и функции ввода/вывода верхнего уровня, начинают выполнение очередной операции с текущей позиции в файле. Текущая позиция изменяется при каждой операции чтения или записи.
Функция eof может быть использована для проверки на конец файла.
Когда происходит ошибка, программы в/в нижнего уровня присваивают код ошибки переменной errno. Можно использовать функцию perror для печати информации об ошибках в/в. Можно позиционировать указатель файла на определенную позицию в файле, используя функцию lseek. Используя функцию tell, можно определить текущую позицию указателя файла. Устройства типа консольного терминала не имеют указателя файла. Результат функций lseek и tell не определен, если они применяются к дескриптору, связанному с таким устройством.
Закрытие файлов
Функция close закрывает открытые файлы. Открытые файлы также автоматически закрываются при неаварийном завершении программы.
Функции вода/вывода с консольного терминала и порта
Функции ввода/вывода для консольного терминала выделены в отдельную группу, потому что они используют специфические особенности компьютера IBM/PC (наличие специального видеоадаптера) и не являются переносимыми на другие типы компьютеров.
функция | Краткое описание |
cgets | чтение строки с консоли |
cprintf | запись данных на консольный терминал по формату |
cputs | вывод строки на консольный терминал |
getch | чтение символа с консоли |
getche | чтение символа с консоли с эхо-печатью |
kbhit | проверка нажатия клавиши на консоли |
putch | вывод символа на консольный терминал |
ungetch | возврат последнего прочитанного символа с консольного символа обратно с тем, чтобы он стал следующим символом для чтения |
Система программирования MSC предоставляет дополнительно функцию cscanf - чтение данных с консоли по формату.
Система программирования ТС предоставляет дополнительно функцию getpass - ввод с терминала пароля без эхо-печати
Прототипы функций содержатся в файле conio.h. Устройства: консольный терминал и порт не могут быть открыты или закрыты перед выполнением в/в, поэтому функции fopen и fclose не вызываются. Функции в/в с консольного терминала позволяют читать и записывать строки (cgets и cputs), форматированные данные (cscanf и cprintf) и символы. Функция kbhit определяет: было ли нажатие клавиши на консольном терминале. Эта функция позволяет определить наличие символов для ввода с клавиатуры до попытки чтения.
Математические функции