Daylight
daylight
Функция Определяет, должна ли производиться установка лет- него времени.
Синтаксис extern int daylight;
Объявлено в time.h
Описание daylight используется функциями времени и даты. Устанавливается функциями tzset, ftime, localtime в "1" для летнего времени, "0" для стандартного времени.
Delline
delline
Функция Удаляет строку в текстовом окне.
Синтаксис #include
void delline(void);
Файл, содержащий conio.h прототип
Описание delline удаляет строку, в которой находится курсор и сдвигает все строки ниже данной на одну вверх. delline работает внутри текущего активного окна.
Возвращаемое Нет. значение
Переносимость Эта функция работает только на компьютерах совмес- тимых с IBM PC.
Смотрите также
Пример:
#include
int main(void) { clrscr(); cprintf("Функция DELLINE удаляет строку, содержащую курсор\r\n"); cprintf("и перемещает все строки, лежащие ниже ее, на одну\r\n"); cprintf("строку вверх. DELLINE работает в текущем активном \r\n"); cprintf("текстовом окне. Для продолжения нажмите клавишу..."); gotoxy(1,2); /* переместить курсор на вторую строку */ getch(); delline(); getch(); return 0; }
Detectgr
detectgraph
Функция Определяет графический драйвер и графический режим при проверке аппаратного обеспечения.
Синтаксис #include
void far detectgraph (int far*graphdriver, int far *graphmode);
Файл, содержащий graphics.h прототип
Описание detectgraph определяет ваш системный гра- фический адаптер и выбирает режим, который обеспе- чивает самое высокое разрешение для этого адапте- ра. Если графический адаптер не обнаружен, *graphdriver устанавливается в -2 и graphresult будет также возвращать -2(grNotDetected).
*graphdriver - целое, которое определяет исполь- зуемый графический драйвер. Вы можете задать его значение, используя константу перечисляемого типа graphics_drivers, определенную в graphics.h и при- веденную в следующей таблице.
__________________________________________ graphics_drivers константа численное значение __________________________________________ DETECT 0 (запрашивает автоопределе- ние драйвера) CGA 1 MCGA 2 EGA 3 EGA64 4 EGAMONO 5 IBM8514 6 HERCMONO 7 ATT400 8 VGA 9 PC3270 10 __________________________________________
*graphmode - целое, которое определяет на- чальный графический режим (если *graphdriver не равен DETECT, *graphmode устанавливается в наивыс- шее разрешение, допустимое для данного драйвера) Вы можете задать значение *graphmode, используя константу перечисляемого типа graphics_modes, оп- ределенную в graphics.h и показанную в следующей таблице: -------------------------------------------------------------- Графическ. graphics Знач. Колонок Палитра Страниц драйвер _modes * столбцов ------------------------------------------------------------- CGA CGAC0 0 320 x 200 C0 1 CGAC1 1 320 x 200 C1 1 CGAC2 2 320 x 200 C2 1 CGAC3 3 320 x 200 C3 1 CGAHI 4 640 x 200 2цвета 1
MCGA MCGAC0 0 320 x 200 C0 1 MCGAC1 1 320 x 200 C1 1 MCGAC2 2 320 x 200 C2 1 MCGAC3 3 320 x 200 C3 1 MCGAMED 4 640 x 200 2цвета 1 MCGAHI 5 640 x 480 2цвета 1
EGA EGALO 0 640 x 200 16цветов 4 EGAHI 1 640 x 350 16цветов 2
EGA64 EGA64LO 0 640 x 200 16цветов 1 EGA64HI 1 640 x 350 4 цвета 1
EGA- EGAMONOHI 3 640 x 350 2 цвета 1* MONO EGAMONOHI 3 640 x 350 2 цвета 2**
HERC HERCMONOHI 0 720 x 348 2 цвета 2
AT400 ATT400C0 0 320 x 200 C0 1 ATT400C1 1 320 x 200 C1 1 ATT400C2 2 320 x 200 C2 1 ATT400C3 3 320 x 200 C3 1 ATT400MED 4 640 x 200 2 цвета 1 ATT400HI 5 640 x 400 2 цвета 1
VGA VGALO 0 640 x 200 16 цветов 2 VGAMED 1 640 x 350 16 цветов 2 VGAHI 2 640 x 380 16 цветов 1
PC3270 PC3270HI 0 720 x 350 2 цвета 1
IBM8514 IBM8514HI 0 640 x 480 256 цветов IBM8514LO 0 1024 x 768 256 цветов
* 64К на карте EGAMONO ** 256К на карте EGAMONO -------------------------------------------------------------- Замечание. Основная причина вызова непосредствен- но detectgraph состоит в переопределении графи- ческого режима , который detectgraph рекомендовал initgraph.
Возвращаемое Нет. значение
Переносимость Функция уникальна для Turbo C++. Эта функция пригодна только для компьютеров IBM PC и совмес- тимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
/* Имена различных графических адаптеров */ char *gname[] = { "требуется определение", "CGA", "EGA", "EGA с 64K", "монохромный EGA", "IBM 8514", "Hercules монохромный", "AT&T 6300 PC", "VGA", "IBM 3270" };
int main(void) { /* используется для определения графического адаптера */ int graphdriver, gmode, errorcode; /* определение адаптера */ detectgraph(&graphdriver,&gmode,""); /* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } /* вывести полученную информацию */ clrscr(); printf("Установлена плата: %s",gname[graphdriver]); printf("Для завершения нажмите любую клавишу..."); getch(); return 0; }
Diftime
diftime
Функция Вычисляет разницу между первым и вторым временем.
Синтаксис #include
double difftime(time_t time2, time_t time1);
Файл, содержащий time.h прототип
Описание difftime вычисляет время в секундах между time1 и time2.
Возвращаемое Возвращает результат вычислений типа double. значение
Переносимость Совместима с UNIX и определена в ANSI C.
Смотрите также (переменная), (переменная).
Пример:
#include
#include
#include
#include
int main(void) { time_t first,second; clrscr(); first = time(NULL); /* получить системное время */ delay(2000); /* задержка на 2000 миллисекунд */ second = time(NULL);/* опять получить системное время */ printf("Разница равна %f секунд",difftime(second,first); getch(); return 0; }
Directvi
directvideo
Функция Флаг управления видео выводом.
Синтаксис extern int directvideo;
Объявлено в conio.h
Описание directvideo управляет выводом на консоль (из cputs, например) напрямую через видео RAM (directvideo=1) или через вызов ROM BIOS (directvideo=0). Значением по умолчанию является directvideo=1 (консольный вывод идет напрямую че- рез видео RAM). Чтобы использовать directvideo=1, видео контроллер должен быть идентичным по отно- шению к IBM. Установка directvideo=0 позволяет выводить на консоль на любом компьютере, совмес- тимом по IBM BIOS.
Disable
disable
Функция Запрещает прерывания.
Синтаксис #include
void disable(void);
Файл, содержащий dos.h прототип
Описание Данная макрокоманда разработана с целью обеспе- чения программистов гибким средством контроля над прерываниями на физическом уровне.
Макрокоманда disable делает прерывания невозможны- ми. Разрешено только прерывание NMI с внешнего ус- тройства (немаскируемое прерывание).
Возвращаемое Нет. значение
Переносимость Данная макрокоманда уникальна для архитектуры 8086.
Смотрите также
Пример:
/* Замечание. Это программа обработки прерывания. Вы не сможете откомпилировать эту программу с включенной проверкой переполнения стека (Test Stack Overflow - On) и получить правильно работающую программу. */
#include
#include
#include
#define INTR 0X1C /* прерывание таймера */
void interrupt (*oldhandler)(void);
int count=0;
void interrupt handler(void) { /* запрет других прерываний во время обработки этого */ disable(); /* увеличение глобального счетчика */ count++; /* разрешение прерываний после обработки */ enable(); /* вызов старой программы обработки */ oldhandler(); } int main(void) { /* сохранить старый вектор */ oldhandler = getvect(INTR); /* записать новый вектор */ setvect(INTR,handler); /* цикл, пока счетчик не достигнет 20 */ while(count < 20) printf("счетчик = %d\n",count); /* восстановить старый вектор */ setvect(INTR,oldhandler); return 0; }
Div
div
Функция Производит деление двух целых и возвращает частное и остаток.
Синтаксис #include
div_t div(int numer, int denom);
Файл содержащий stdlib.h прототип
Описание div делит два целых и возвращает частное и остаток в структуре типа div_t. numer - делимое, denum - делитель. Структура div_t определена в stdlib.h следующим образом:
typedef struct { int quot; /* частное */ int rem; /* остаток */ } div_t;
Возвращаемое div возвращает структуру типа div_t, содержащую значение частное и остаток от деления.
Переносимость div совместима с ANSI C.
Смотрите также
Пример:
#include
#include
div_t x;
int main(void) { x = div(10,3); printf("10 div 3 = %d, ост = %d",x.quot,x.rem); return 0; } Вывод: 10 div 3 = 3 ост = 1
Dosexter
dosexterr
Функция Получает дополнительный код ошибки DOS.
Cинтаксис #include
int dosexterr(struct DOSERROR *eblkp);
Файл, содержащий dos.h прототип
Описание Данная функция заполняет структуру DOSERROR с адрес- ным указателем eblkp расширенной информацией об ошибке, получаемой при неудачном завершении сис- темного вызова DOS. Структура DOSERROR определена следующим образом:
struct DOSERROR { int exterror; /* дополнительная ошибка */ char class; /* класс ошибки */ char action; /* действия */ char locus; /* местонахождение ошибки */ };
Значения данная структура получает с помощью вызо- ва функции DOS 0x59. Значение exterror, равное ну- лю, обозначает, что предшествующий вызов системы MS DOS завершился без ошибки.
Возвращаемое Функция dosexterr возвращает значение переменной значение exterror.
Переносимость Функция уникальна для системы MS DOS версии 3.X, поэтому не может быть использована в более ранних версиях системы DOS.
Пример:
#include
#include
int main(void) { FILE *fp; struct DOSERROR info; fp = fopen("perror.dat","r"); if(!fp) perror("Не могу открыть файл для чтения"); dosexterror(&info); printf("Дополнительная информация об ошибке DOS:\n"); printf(" дополнительная ошибка: %d\n",info.exterror); printf(" класс ошибки: %d\n",info.class); printf(" действия: %d\n",info.action); printf(" местонахождение ошибки: %d\n",info.locus); return 0; }
Dostouni
dostounix
Функция Преобразует дату и время в формат системы UNIX.
Синтаксис #include
long dostounix(struct date *d,struct dostime *t);
Файл, содержащий dos.h прототип
Описание Функция dostounix конвертирует дату и время, полу- чаемые функциями getdate и gettime в формат систе- мы UNIX. Аргумент d является адресным указателем структуры date, а аргумент t указывает на структу- ру dostime, содержащие корректную информацию о времени и дате системы DOS.
Возвращаемое Функция dostounix возвращает текущее время значение системы UNIX: количество секунд, начиная с 1 янва- ря 1970, 00:00:00 (время по Гринвичу).
Переносимость функция уникальна для системы DOS.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { time_t t; struct time d_time; struct date d_date; struct tm *local;
getdate(&d_date); gettime(&d_time); t = dostounix(&d_date,&d_time); local = localtime(&t); printf("Время и дата: %s\n",asctime(local)); return 0; }
Drawpoly
drawpoly
Функция Рисует контур многоугольника.
Синтаксис #include
void far drawpoly (int numpoints, int far *polypoints);
Файл, содержащий graphics.h прототип
Описание drawpoly рисует +а многоугольник ,имеющий numpoints точек, используя текущие тип линии и цвет.
*polypoints указывает на последовательность из (numpoints x 2) целых чисел. Каждая пара чисел x и y является координатами вершины многоугольника.
Замечание. Для построения замкнутой фигуры, имею- щей n вершин, необходимо задавать n+1 координату, где n-ная координатная пара равна 0-ой.
Возвращаемое Нет. значение
Переносимость Функция уникальна для Turbo C++. Эта функция пригодна только для компьютеров IBM PC и совмести- мых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int maxx,maxy; /* наш многоугольник */ int poly[10];
/* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } maxx = getmaxx(); maxy = getmaxy();
poly[0] = 20; /* первая точка */ poly[1] = maxy/2;
poly[2] = maxx-20; /* 2 */ poly[3] = 20;
poly[4] = maxx-50; /* 3 */ poly[5] = maxy-20;
poly[6] = maxx/2; /* 4 */ poly[7] = maxy/2;
poly[8] = poly[0]; /* возврат в исходную т. */ poly[9] = poly[1];
/* рисует многоугольник */ drawpoly(5,poly);
/* очистка */ getch(); closegraph(); return 0; }
Dup
dup
Функция Дублирует дескриптор файла.
Синтаксис #include
int dup(int handle);
Файл, содержащий io.h прототип
Описание Функция dup возвращает дескриптор файла, который по следующим позициям совпадает с оригинальным дескриптором:
- тот же самый открываемый файл или устройство;
- тот же самый адресный указатель файла (то есть изменение одного адресного указателя приводит к изменению другого);
-тот же самый метод доступа (чтение, запись, чте- ние/запись).
Переменная handle получают значения при вызове функций creat,_creat,_open, open, dup, dup2.
Возвращаемое При успешном завершении функция dup возвращает це- значение лое неотрицательное число, обозначающее соответст- вующий дескриптор файла; в противном случае функ- ция dup возвращает значение -1.
При возникновении ошибки глобальная переменная errno получает одно из следующих значений:
EMFILE - Слишком много открытых файлов. EBADF - Неверный номер файла.
Переносимость Функция dup поддерживается в системах UNIX.
Смотрите также ,
Пример:
#include
#include
#include
#include
void flash(FILE *stream);
int main(void) { FILE *fp; char msg[] = "Тестовый пример"; /* создание файла */ fp = fopen("DUMMY.FIL,"w"); if(fp) { /* записать в файл данные */ fwrite(msg,strlen(msg),1,fp); clrscr(); printf(" Для сброса буферов файла на диск нажмите клавишу "); getch(); /* Сброс буферов файда на диск без его закрытия */ flush(fp); printf("Буфера записаны, для завершения нажмите клавишу."); getch(); } else { printf("Ошибка при открытии файла\n"); } return 0; } void flash(FILE *stream) { int duphandle; /* сброс внутреннего буфера TC */ fflash(stream); /* сдублировать дескриптор файла */ duphandle = dup(fileno(stream)); /* закрыть второй дескриптор, для сброса внутренних буферов DOS */ close(duphandle); }
dup2
Функция Дублирует дескриптор файла.
Синтаксис #include
int dup2(int oldhandle, int newhandle);
Файл, содержащий io.h прототип
Описание Функция dup2 возвращают дескриптор файла, который по следующим позициям совпадает с оригинальным дескриптором:
- тот же самый открываемый файл или устройство;
- тот же самый адресный указатель файла (то есть изменение одного адресного указателя приводит к изменению другого);
-тот же самый метод доступа (чтение, запись, чте- ние/запись).
dup2 создает новый дескриптор со значением newhandle Если файл связанный с дескриптором newhandle открыт, то при вызове dup2 он закрывает- ся.
Переменная newhandle и oldhandle - это дескрипторы файлов, и получают значения при вызове функций creat,_creat,_open, open, dup, dup2.
Возвращаемое При успешном завершении функция dup2 возвращает 0, значение в противном случае функция dup2 возвращает значе- ние -1.
При возникновении ошибки глобальная переменная errno получает одно из следующих значений:
EMFILE - Слишком много открытых файлов. EBADF - Неверный номер файла.
Переносимость Функция dup поддерживается на системах UNIX, кроме system III.
Смотрите также ,
Пример:
#include
#include
#include
#include
#include
#define STDOUT 1
int main(void) { int fptr,oldstdout; char msg[] = "Тестовый пример"; /* создание файла */ fptr = open("DUMMY.FIL",O_CREAT|O_RDWR,S_IREAD|S_IWRITE); if(fptr) { /* создать дополнительный дескриптор для stdout */ oldstdout = dup(STDOUT); /* перенаправить стандартный вывод в файл, путем дублирования его дескриптора */ dup2(fptr,STDOUT); /* закрыть файл */ close(fptr); /* было перенаправлено в DUMMY.FIL */ write(STDOUT,msg,strlen(msg)); /* восстановить исходный дескриптор stdout */ dup2(oldstdout,STDOUT); /* закрыть второй дескриптор stdout */ close(oldstdout); } else { printf("Ошибка при открытии файла. \n"); } return 0; }