Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования
Скачать 3.41 Mb.
|
ioctl----------------------------------------------------------------- Назначение Управляет устройствами ввода-вывода. Синтаксис int ioctl(int handle, int cmd[, void *argdx, int argcx]); Прототип в io.h Замечания Это прямой интерфейс к системному вызову 0х44 (IOCTL). Выполняемая функция зависит от значения cmd следующим образом: 0- Получить информацию об устройстве; 1- Установить информацию об устройстве (в argdx); 2- Прочитать argcx байт и поместить их по ад- ресу, на который указывает argdx; 3- Записать argcx байт, находящихся по адресу argdx; 4- То же, что и 2, за исключением того, что handle трактуется, как номер диска (0= те- кущий, 1= А и т.д.); 5- То же, что и 3, за исключением того, что handle трактуется, как номер диска (0= те- кущий, 1= А и т.д.); 6- Получить состояние ввода; 7- Получить состояние вывода; 8- Проверить сменяемость (только для DOS 3.х) 11- Запустить счетчик попыток перезапуска при конфликте (только для DOS 3.0). ioctl может использоватся для получения инфор- мации о каналах устройств. Кроме того, могут использоваться регулярные файлы, но для них оп- ределены только значения cmd 0, 6, и 7. Все остальные вызовы возвращают ошибку EINVAL для файлов. Для получения более полной информации об аргу- ментах и возвращаемых значениях необходимо об- ратиться к документации по системному вызову 0х44 в Руководстве программиста MS-DOS. Параметры argcx и argdx необязательны. ioctl обеспечивает прямой интерфейс с драйвера- ми устройств DOS для специальных функций. В ре- зультате точное поведение этих функций будет различаться в зависимости от оборудования. Кро- ме того, некоторые устройства не следуют интер- фейсу, описанному здесь. Для точного использо- вания ioctl читайте документацию по BIOS. Возвращаемое Для cmd 0 или 1 возвращаемым значением будет значение информация об устройстве (DX в вызове IOCTL). Для cmd, равного от 2-х до 5, возвращается чис- ло переданных байт. Для cmd 6 и 7 возвращается состояние устройс- тва. В любом случае, если обнаружена ошибка, возвра- щается значение -1, и errno присваивается сле- дующее значение: EINVAL - неверный аргумент EBADF - неверен номер файла EINVDAT - ошибочные данные. Переносимость ioctl доступен на системах UNIX, но не с этими параметрами или возможностями. UNIX.7 и System III отличаются по своему использованию ioctl. Вызовы ioctl не переносимы для UNIX и редко переносимы среди машин MS-DOS. DOS 3.0 расширяет ioctl значениями входных па- рамиетров 8 и 11. Пример #include #include #include main() { int stat; /* Используется функция 8 для определения, сменяемо ли текущее устройство */ stat = ioctl(0, 8, 0, 0); printf("Устройство %c изменяемо? %s \n", getdisk() + 'A', (stat == 0) ? "ДА":"НЕТ"); } Результат выполнения программы Устройство C изменяемо? НЕТ ----------------------------------------------------------------- isalnum----------------------------------------------------------------- Назначение Макрос классификации символов. Синтаксис #include int isalnum(int ch); Прототип в io.h Замечания isalnun макрос, который классифицирует целые значения кода ASCII просмотром таблицы. Функция возвращает не ноль в случае истины и 0 - в слу- чае лжи. isalnum(ch) определена, когда isascii(ch) есть истина или когда ch является символом EOF. Возвращаемое isalnum вернет ненулевое значение, если ch- значение буква или цифра ('A'-'Z','a'-'z','0'-'9') . Переносимость isalnum доступна в UNIX системах. ----------------------------------------------------------------- isalpha----------------------------------------------------------------- Назначение Макрос классификации символов. Синтаксис #include int isalpha(int ch); Прототип в io.h Замечания isalpha макрос, который классифицирует целые значения кода ASCII просмотром таблицы. Функция возвращает не ноль в случае истины и 0 - в слу- чае лжи. isalpha(ch) определена, когда isascii(ch) есть истина или когда ch является символом EOF. Возвращаемое isalpha вернет ненулевое значение, если ch- значение буква ('A'-'Z','a'-'z') . Переносимость isalpha доступна в UNIX системах. Она определе- на Керниганом и Ритчи. ----------------------------------------------------------------- |