Субботин Д. М.
Шрифт:
поток | значение дескриптора |
stdin | 0 |
stdout | 1 |
stderr | 2 |
stdaux | 3 |
stdprn | 4 |
Можно использовать эти дескрипторы файлов в программе без предварительного открытия этих файлов. Они автоматически открываются при запуске программы.
Так же, как с функциями для потоков, Вы можете использовать перенаправление, чтобы переопределить стандартный ввод и вывод.
Функции dup и dup2 позволяют назначать несколько handle для одного файла; эти функции обычно используются, чтобы связать дополнительные дескрипторы с уже используемыми файлами.
Чтение и запись данных
Функции 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 определяет: было ли нажатие клавиши на консольном терминале. Эта функция позволяет определить наличие символов для ввода с клавиатуры до попытки чтения.
Математические функции
Функция | Краткое описание |
abs | нахождение абсолютного значения выражения типа int |
acos | вычисление арккосинуса |
asin | вычисление арксинуса |
atan | вычисление арктангенса х |
atan2 | вычисление арктангенса от у/х |
cabs | нахождение абсолютного значения комплексного числа |
ceil | нахождение наименьшего целого, большего или равного х |
_clear87 | получение значения и инициализация слова состояния сопроцессора и библиотеки арифметики с плавающей точкой |
_control87 | получение старого значения слова состояния для функций арифметики с плавающей точкой и установка нового состояния |
cos | вычисление косинуса |
cosh | вычисление гиперболического косинуса |
exp | вычисление экспоненты |
fabs | нахождение абсолютного значения типа double |
floor | нахождение наибольшего целого, меньшего или равного х |
fmod | нахождение остатка от деления х/у |
_fpreset | повторная инициализация пакета плавающей арифметики |
frexp | разложение х как произведения мантиссы на экспоненту 2n |
hypot | вычисление гипотенузы |
labs | нахождение абсолютного значения типа long |
ldexp | вычисление х*2exp |
log | вычисление натурального логарифма |
log10 | вычисление логарифма по основанию 10 |
matherr | управление реакцией на ошибки при выполнении функций математической библиотеки |
modf | разложение х на дробную и целую часть |
pow | вычисление х в степени у |
sin | вычисление синуса |
sinh | вычисление гиперболического синуса |
sqrt | нахождение квадратного корня |
_status87 | получение значения слова состояния с плавающей точкой |
tan | вычисление тангенса |
tanh | вычисление гиперболического тангенса |
Система программирования MSC предоставляет дополнительно функции:
Функция | Краткое описание |
bessel | вычисление функции Бесселя |
dieeetomsbin | преобразование плавающего числа двойной точности из IEEE-формата в Microsoft-формат |
dmsbintoieee | преобразование плавающего числа двойной точности из Microsoft-формата в IEEE-формат |
fieeetomsbin | преобразование числа с плавающей точкой из IEEE-формата в Microsoft-формат |
fmsbintoieee | преобразование числа с плавающей точкой из Microsoft-формата в IEEE-формат |