Raise
raise
Функция Посылает программный сигнал выполняемой программе.
Синтаксис #include
int raise(int sig);
Файл, содержащий signal.h прототип
Описание raise посылает сигнал sig программе. Если програм- ма загрузила процедуру обработки сигнала, для сигнала sig, то запускается данная процедура. Ес- ли процедуры обработки для данного сигнала нет, то производятся действия, определенные для данно- го сигнала по умолчанию.
Имеются следующие типы сигналов, определенные в файле signal.h:
-------------------------------------------------- Сигнал Значение -------------------------------------------------- SIGABRT Ненормальное завершение (*) SIGFPE Неверная операция над числами с плавающей точкой SIGILL Неверная инструкция (#) SIGINT Прерывание по Ctrl_Break. SIGSEGV Неверный доступ к памяти (#) SIGTERM Запрос на завершение программы (*) --------------------------------------------------
Сигналы помеченные (*) не генерируются DOS или Turbo C++, во время нормальной работы. Однако они могут генерироваться с помощью функции raise. Сигналя помеченные (#) не могут генерироваться асинхронно процессорами 8088 или 8086, однако мо- гут генерироваться некоторыми другими процессора- ми (смотри signal).
Возвращаемое При успешном завершении raise возвращает 0, в про- значение тивном случае ненулевое значение.
Переносимость raise поддерживается системами UNIX и стандартом ANSI C.
Смотрите также
Пример:
#include
int main() { int a,b;
a = 10; b = 0; if(b==0)
/* предварить ошибку при делении на 0 */ raise(SIGFPE); a = a / b; return 0; }
Rand
rand
Функция Генератор случайных чисел.
Синтаксис #include
int rand(void);
Файл, содержащий stdlib.h прототип
Описание Функция rand использует мультипликативный конгру- энтный генератор случайных чисел с периодом 2^32, чтобы получать псевдослучайные числа в диапазоне от 0 до RAND_MAX. Символическая константа RAND_MAX определена в stdlib.h; ее значение 2^15ё1.
Переносимость Функция поддерживаются на системах UNIX и стандар- том ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { int i; printf("10 случайных чисел от 0 до 99 \n\n"); for (i=0; i
Randbrd
randbrd
Функция Чтение с диска.
Синтаксис #include
int randbrd(struct fcb *fcbptr, int recent);
Файл, содержащий dos.h прототип
Описание Функция randbrd считывает количество записей recent, используя блок FCB, адресуемый указателем fcbptr. Записи считываются в память по текущему адресу DTA. Записи считываются с диска, причем информация берется из поля random record блока FCB. Эта операция выполняется с помощью системно- го вызова DOS 0x27.
Действительное число считанных записей можно оп- ределить проанализировав поля random record блока FCB. Данное поле после операции будет заполнено информацией о числе действительно считанных запи- сей.
Возвращаемое В зависимости от результата работы функций randbrd значение возвращает следующие значения:
0- все записи прочитаны;
1- достигнут конец файла (EOF) и последняя запись прочитана полностью;
2- считанные записи будут располагаться рядом с адресом 0xFFFF (прочитано записей столько, сколько возможно).
3- достигунт конец файла и последняя запись обра- ботана не полностью.
Переносимость Функция уникальна для DOS.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { char far *save_dta; char line[80],buffer[256]; struct fcb blk; int i,result; /* ввести имя файла */ printf("Введите устройство и имя файла (без маршрута, например\ a:file.dat)\n"); gets(line); /* записать имя файла в FCB */ if(!parsfnm(line,&blk,1)) { printf("Ошибка при вызове parsfnm\n"); exit(1); } printf("Устройство #%d файл: %s\n\n",blk.fcb_drive, blk.fcb_name); /* открыть файл, с использованием функций DOS, работающих с FCB */ bdosptr(0x0f,&blk,0); /* сохранить старый DTA, создать новый */ save_dta = getdta(); setdta(buffer); /* передать в FCB информацию об DTA */ blk.fcb_recsize = 128; blk.fcb_random = 0L; result = randbrd(&blk,1); /* проверить результат операции */ if(!result) printf("Чтение закончено успешно\n"); else { perror("Ошибка, во время чтения \n"); exit(1); } /* считать данные из новой DTA */ printf("Первые 128 символов:\n); for(i=0; i
Randbwr
randbwr
Функция Запись на диск.
Синтаксис #include
int randbwr(struct fcb *fcbptr, int reccnt);
Файл, содержащий dos.h прототип
Описание Функция randbwd записывает recent записей, исполь- зуя блок FCB, адресуемый указателем fcbptr. Эта операция выполняется с помощью системного вызова DOS 0x28.
Действительное число записанных записей можно оп- ределить проанализировав поля random record блока FCB. Данное поле после операции будет заполнено информацией о числе действительно записанных за- писей.
Возвращаемое В зависимости от результата работы функций randbwd значение возвращает следующие значения:
0- все записи записаны; 1- На диске нет места для записи данных. (Не за- писано ни одной записи.) 2- выводимые записи располагаются рядом с адресом 0xFFFF (выведено записей столько, сколько воз- можно).
Переносимость Функция уникальна для DOS.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { char far *save_dta; char line[80]; char buffer[256] = "RANDBWR test!"; struct fcb blk; int result; /* ввести имя файла */ printf("Введите имя нового файла (без маршрута, например\ a:file.dat)\n"); gets(line); /* записать имя файла в FCB */ if(!parsfnm(line,&blk,1)) printf("Устройство #%d файл: %s\n\n",blk.fcb_drive, blk.fcb_name); /* создать файл, с использованием функций DOS, работающих с FCB */ if(bdosptr(0x16,&blk,0)==-1) { printf("Ошибка при создании файла\n"); exit(1); } /* сохранить старый DTA, создать новый */ save_dta = getdta(); setdta(buffer); /* вывод в файл */ blk.fcb_recsize = 256; blk.fcb_random = 0L; result = randbwd(&blk,1); /* проверить результат операции */ if(!result) printf("Запись закончена успешно\n"); else { perror("Ошибка диска\n"); exit(1); } /* закрыть файл */ if(bdosptr(0x10,&blk,0)==-1) { printf("Ошибка при закрытии файла\n"); exit(1); } /* восстановить DTA */ setdta(save_dta); return 0; }
Random
random
Функция Генератор случайных чисел.
Синтаксис #include
int random(int num);
Файл, содержащий stdlib.h прототип
Описание Функция random возвращает случайное число в диапазоне от 0 до num-1. random(num) это макро, определенное в виде (rand()%num). И num и возвра- щаемое значение целые.
Возвращаемое random возвращает случайное число в диапазоне от значение 0 до num-1.
Переносимость Соответствующая функция существует в Turbo Pascal.
Смотрите также
Пример:
#include
#include
#include
int main(void) { randomize(); printf("Случайное число в диапазоне от 0 до 99:", random(100)); return 0; }
Randomiz
randomize
Функция Инициализация генератора случайных чисел.
Синтаксис #include
#include
void randomize(void);
Файл, содержащий stdlib.h прототип
Описание Функция randomize инициализирует генератор случай- ных чисел некоторым случайным числом. Т.к. randomize это макро, которое использует вызов функции time, то мы рекомендуем включить также файл time.h при использовании этой функции.
Возвращаемое Нет. значение
Переносимость Соответствующая функция существует в Turbo Pascal.
Смотрите также
Пример:
#include
#include
int main(void) { int i; randomize(); printf("10 случайных чисел от 0 до 99 \n\n"); for (i=0; i
Read
read
Функция Считывает данные из файла.
Синтаксис #include
int read(int handle, void *buf, unsigned len);
Файл, содержащий io.h прототип
Описание Функция read делает попытку считать len байт из файла, связанного с handle, в буфер, адресуемый параметром buf.
В файле, открытом в текстовом режиме, функция read удаляет символы "возврат каретки" и выдает "конец файла" (EOF), при получении символа Ctrl-Z.
Параметр handle - это тот же самый параметр, что получают на выходе функций creat, open, dup, dup2.
Функция начинает чтение дисковых файлов с текуще- го положения указателя файла. Когда чтение завер- шено, данная функция увеличивает указатель файла на число считанных байт. При работе функции с ус- тройствами, байты данных считываются непосредст- венно с устройства.
Максимально, read может ввести 65534 байта, т.к. 65535 это -1, индикатор ошибки.
Возвращаемое При успешном завершении возвращается положительное значение целое число, являющееся числом байт, помещенных в буфер; причем, если файл открывается в тексто- вом режиме, функция read не включает символы "возврата каретки" и символы Ctrl-z в число счи- танных байтов. По концу файла (EOF), функция воз- вращает нуль.
При ошибке функция возвращает значение -1, и гло- бальной переменной errno присваивается одно из следующих значений:
EACCES - Отказ доступа; EBADF - Неверный номер файла.
Переносимость Функция read поддерживается на системах UNIX.
Смотрите также
Пример:
#include
#include
#include
#include
#include
#include
int main(buffer) { void *buf; int handle,bytes; buf = malloc(10); /* Поиск в текущей директории файла с именем TEST.$$$ и попытка чтения из него 10 байт. Перед запуском этой программы необходимо создать файл TEST.$$$ */ if((handle = open("TEST.$$$",O_RDONLY|O_BINARY))== -1) { printf("Ошибка при открытии файла.\n"); exit(1); } if((bytes = read(handle,buf,10))==-1) { printf("Ошибка чтения.\n"); exit(1); } printf("Считано %d байт.\n",bytes); return 0; }
Real
real
Функция Возвращает вещественную часть комплексного числа, или преобразует число из двоично-десятичного ко- дирования обратно в float, double или long double.
Синтаксис Определенное в complex: Определенное в bcd: #include #include
double real(complex x); double real(bcd x);
Файл, содержащий complex.h bcd.h прототип
Описание Комплексное число состоит из мнимой и веществен- ной части. real возвращает вещественную часть.
Кроме этого, вы можете использовать real для пре- образования числа в двоично-десятичном кодирова- нии в число типа float, double или long double.
Возвращаемое Вещественная часть комплексного числа. значение
Переносимость Комплексные функции требуют C++ и поэтому непере- носимы.
Смотрите также
Пример 1:
#include
#include
int main(void) { double x=3.1,y=4.2; complex z = complex(x,y); cout
#include
int main(void) { bcd x = 3.1; cout
Realloc
realloc
Функция Перераспределяет память.
Синтаксис #include
void * realloc(void *block, size_t size);
Файл, содержащий stdlib.h и alloc.h прототип
Описание realloc пытается сжать или увеличить предваритель- выделенный блок до размера в size байт. Аргумент block указывает на блок памяти, полученный при вызове функций malloc, calloc или realloc. Если block является нулевым указателем, realloc рабо- тает также как и malloc.
realloc изменяет размер выделенного блока памяти и при необходимости копирует его содержимое в но- вый блок.
Возвращаемое realloc возвращает адрес блока, который может от- значение личаться от исходного. Если блок не может быть выделен или size равно 0, то realloc возвращает NULL.
Переносимость realloc доступна в системах UNIX и поддерживается стандартом ANSI C.
Смотрите также
Пример:
#include
#include
#include
int main(void) { char *str; /* выделить память под строку */ str = malloc(10); /* скопировать в строку "Hello" */ strcpy(str,"Hello"); /* вывести строку */ printf("Строка: %s\n, Адрес: %p\n",str,str); str = realloc(str,20); printf("Строка: %s\n, Новый адрес: %p\n",str,str); /* освободить память */ free(str); return 0; }
Rectangl
rectangle
Функция Рисует прямоугольник.
Синтаксис #include
void far rectangle( int left, int top, int right, int bottom );
Файл, содержащий graphics.h прототип
Описание rectangle рисует прямоугольник линией те- кущего вида, толщины и цвета.
(left, top)-координаты левого верхнего угла пря- моугольника, а (right, bottom)-его правый нижний угол.
Возвращаемое Нет. значение
Переносимость Эта функция уникальна для Turbo C++. Она работа- ет только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддер- живающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int left,top,right,bottom;
/* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } left = getmaxx() / 2 - 50; top = getmaxy() / 2 - 50; right = getmaxx() / 2 + 50; bottom = getmaxy() / 2 + 50; /* рисует прямоугольник */ rectangle(left,top,right,bottom); /* очистка */ getch(); closegraph(); return 0; }
Register
registerbgifont
Функция Регистрирует встроенный код штриховых символов.
Синтаксис #include
int registerbgifont(void(*font)(void));
Файл, содержащий graphics.h прототип
Описание Вызов registerbgifont информирует графи- ческую систему о том, что шрифт font был включен во время компоновки. Эта программа проверяет свя- занный код для указанного шрифта. Если код пра- вильный, то она регистрирует код во встроенной таблице. Встроенные шрифты описываются подробно в разделе BGIOBJ файла UTIL.DOC.
Используя имя встроенного шрифта в вызове registerbgifont, вы просите компилятор (и редак- тор связей (linker)) встроить объектный файл с открытым именем. Если вы регистрируете шрифт загруженный пользова- телем, вы обязаны передать результат выполнения registerbgifont в initgraph в виде номера шрифта, который будет использоваться.
Возвращаемое registerbgifont возвращает отрицательный значение код графической ошибки, если указанный шрифт являются неверными. В противном случае registerbgifont возвращает номер зарегистрирован- ного шрифта.
Переносимость Эта функция уникальна для Turbo C++. Она работа- ет только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддер- живающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int midx,midy;
/* зарегистрировать шрифт, добавленный в graphics.lib */ errorcode = registerbgifont(triplex_font); if(errorcode < 0) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ }
/* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } midx = getmaxx()/2; midy = getmaxy()/2; /* выбрать шрифт */ settextstyle(TRIPLEX_FONT,HORIZ_DIR,4); /* вывести текст */ settextjustify(CENTER_TEXT,CENTER_TEXT); outtextxy(midx,midy, "The TRIPLEX FONT");
/* очистка */ getch(); closegraph(); return 0; }
Remove
remove
Функция Удаляет файл.
Синтаксис #include
int remove(const char *filename);
Файл, содержащий stdio.h прототип
Описание remove удаляет файл, имя которого определяется па- раметром filename. Это макрокоманда, которая просто транслируется в вызов unlink. Если файл был открыт не забудьте его предварительно зак- рыть.
Замечание. Строка с именем файла может включать его полный маршрут.
Возвращаемое При успешном завершении remove возвращает 0. При значение ошибке возвращает -1 и присваивает глобальной пе- ременной errno одно из следующих значений:
ENOENT - Такого файла или директории нет; EACCES - Доступ запрещен.
Переносимость remove доступна в системах UNIX и поддерживается стандартом ANSI C.
Смотрите также
Пример: #include
int main(void) { char file[80]; /* запросить имя удаляемого файла */ printf("Введите имя удаляемого файла */ gets(file); /* удалить файл */ if(remove(file)==0) printf("Файл %s удален.\n"); else perror("remove"); return 0; }
Rename
rename
Функция Переименовывает файл.
Синтаксис #include
int rename(const char *oldname, const char *newname);
Файл, содержащий stdio.h прототип
Описание Функция rename изменяет имя файла с oldname на newname. Если спецификация дисковода включена в имя newname, то она должна быть той же, что и в oldname.
Директории в маршруте (path) не обязательно долж- ны быть теми же самыми, поэтому функцию rename можно использовать для пересылки файла из одной директории в другую. Применять шаблоны не разре- шается.
Возвращаемое При успешном переименовании файла функция rename значение возвращает 0. В случае ошибки, возвращается -1, а глобальная переменная errno получает одно из сле- дующих значений:
ENDENT - Маршрут или имя файла не найдены; EACCES - Отказ доступа; ENOTSAM- Не то же самое устройство.
Переносимость rename поддерживается стандартом ANSI C.
Пример:
#include
int main(void) { char oldname[80],newname[80]; /* запросить имя переименовываемого файла, и новое имя */ printf("Имя переименовываемого файла:"); gets(oldname); promtf("Новое имя:"); gets(newname); if(rename(oldname,newname)==0) printf("Файл переименован с %s в %s\n",oldname,newname); else perror("rename"); return 0; }
Restorec
restorecrtmode
Функция Восстанавливает видео-режим, к исходному, который был перед вызовом initgraph.
Синтаксис #include
void far restorecrtmode(void);
Файл, содержащий graphics.h прототип
Описание restorecrtmode восстанавливает исходный видео ре- жим, который был определен вызовом initgraph.
Эта функция может использоваться совместно с setgraphmode для переключения между текстовым и графическим режимами. Функция textmode не должна использоваться для этих целей;она используется только если экран нужно перевести из одного текс- тового режима в другой текстовый режим.
Возвращаемое Нет. значение
Переносимость Эта функция уникальна для Turbo C++. Она работа- ет только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддер- живающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int x,y;
/* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } x = getmaxx()/2; y = getmaxy()/2; /* вывести текст */ settextjustify(CENTER_TEXT,CENTER_TEXT); outtextxy(midx,midy, "Press any key to exit graphics"); getch(); /* перевести систему в текстовый режим */ restorecrtmode(); printf("Мы теперь в текстовом режиме.\n"); printf("Для возврата в графический режим нажмите любую клавишу.\n"); getch(); /* восстановить графический режим */ setgraphmode(getgraphmode()); /* вывести текст */ settextjustify(CENTER_TEXT,CENTER_TEXT); outtextxy(midx,midy, "We're now back in graphics mode"); outtextxy(midx,midy+textheight("W"),"Press any key to halt:");
/* очистка */ getch(); closegraph(); return 0; }
Rewind
rewind
Функция Устанавливает указатель в начало потока.
Синтаксис #include
int rewind(FILE *stream);
Файл, содержащий stdio.h прототип
Описание rewind(stream) эквивалентно fseek(stream, 0L, SEEK_SET), за исключением того, что rewind обну- ляет признаки конца файла и ошибки, в то время, как fseek обнуляет только признак конца файла.
Возвращаемое Нет. значение
Переносимость rewind доступна во всех системах UNIX и поддержи- вается стандартом ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { FILE *fp; char *fname = "TXXXXXX",*newname,first; newname = mktemp(fname); fp = fopen(newname,"w+"); fprintf(fp,"abcdefghijklmnopqrstuvwxyz"); rewind(fp); fscanf(fp,%c,&first); printf("Первый символ: %c",first); fclose(fp); remove(nemname); return 0; }
Rmdir
rmdir
Функция Удаляет директорию.
Синтаксис #include
int rmdir(const char *path);
Файл, содержащий dir.h прототип
Описание rmdir удаляет директорию, маршрут которой указан в path. Директория в path:
- должна быть полной;
- не должна быть текущей рабочей директорией;
- не должна быть корневой директорией.
Возвращаемое rmdir возвращает 0, если директория была успешно значение удалена. При ошибке возвращает -1 и присваивает глобальной переменной errno одно из следующих значений:
EACCES - Доступ запрещен; ENOENT - Маршрут или файл не найден.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { int stat; stat = mkdir("DIRNAME"); if(!stat) printf("Директория создана\n"); else { printf("Не могу создать директорию\n"); exit(1); } getch(); system("dir /p"); getch(); stat = rmdir(DIRNAME); if(!stat) printf("Директория удалена\n"); else { perror("\nНе могу удалить директорию\n"); exit(1); } return 0; }
Rotr
rotr
Функция Циклический сдвиг вправо целого без знака.
Синтаксис #include
unsigned _rotr(unsigned value, int count);
Файл, содержащий stdlib.h прототип
Описание _rotr производит циклический сдвиг значения value вправо на count разрядов. value рассматривается как целое без знака.
Возвращаемое _rotr возвращает value сдвинутое циклически на значение count разрядов.
Смотрите также
Пример:
#include
#include
int main(void) { unsigned value,result; value = 32767; result = _rotr(value,1); printf("Значение %u сдвинутое на один разряд вправо = %u", value,result); return 0; }