Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

osn_progr_final

.pdf
Скачиваний:
43
Добавлен:
12.02.2016
Размер:
3.27 Mб
Скачать

Функція frexp повертає мантису m. Якщо x дорівнює 0, функція повертає 0 для мантиси та експоненти.

FSCANF <stdio.h>

int fscanf (stream, format-string [, argument ...]); FILE *stream;

char *format-string;// рядок керування форматом

Зчитує дані з поточної позиції потоку stream у задані аргументи arguments (якщо вони є). Кожен аргумент повинен бути вказівником на тип, що відповідає заданому у рядку формату значенню. Рядок формату впливає на інтерпретацію полів введення і має ту ж саму форму і призначення, що і рядок формату для функції scanf.

Повертає кількість перетворених і призначених полів. При спробі зчитування кінця файлу повертається значення EOF.

FSEEK <stdio.h>

int fseek (stream, offset, origin); FILE *stream;

long offset; //число байт від origin int origin; //початкова позиція

Переміщує файловий покажчик, що відповідає потоку stream, у нову позицію, віддалену від origin на offset байт. Наступна операція потоку виконується з нової позиції покажчика. Аргумент origin може приймати значення однієї з наступних констант, визначених у <stdio.h>:

SEEK-SET

початок файлу;

SEEK-CUR

поточна позиція вказівника на файл;

SEEK-END

кінець файлу.

Повертає значення 0, якщо переміщення файлового покажчика відбулось успішно. У випадку помилки повертається будьяке ненульове значення.

FSTAT <sys\types.h>, <sys\stat.h> int fstat(handle,buffer);

int handle; //дескриптор відкритого файла

struct stat *buffer; //вказівник на структуру збереження результату

Одержує інформацію про відкритий файл, зв’язаний з даним дескриптором і запам’ятовує її в структурі, на яку вказує buffer. Структура stat яка оголошена у <sys\stat.h>, містить наступні поля:

391

st_mode

Бітова маска для інформації про режим файлу.

 

Біт S_IFCHR встановлюється, якщо handle поси-

 

лається на пристрій. Біт S_IFREG встановлюєть-

 

ся, якщо handle посилається на звичайний файл.

 

Біти читання/запису користувачів встановлю-

 

ються відповідно режиму доступу до файла.

st_dev

Номер пристрою або диска, що містить файл,

 

або handle у випадку іншого пристрою.

st_rdev

Номер пристрою або диска, що містить файл,

 

або handle у випадку іншого пристрою (аналогі-

 

чно st_dev).

 

 

 

st_nlink

Завжди 1.

 

 

 

st_size

Розмір файла в байтах.

 

 

st_atime

Час останньої модифікації файла.

 

st_mtime

Час останньої

модифікації

файла

(аналогічно

 

st_atime).

 

 

 

st_ctime

Час останньої

модифікації

файла

(аналогічно

st_atime і st_mtime).

FTELL <stdio.h>

long ftell (stream); FILE *stream;

Отримує поточну позицію файлового покажчика (якщо він є), зв’язаного з потоком stream. Позиція знаходиться як зміщення offset від початку потоку stream.

Повертає поточну позицію. У випадку помилки повертається значення -1L. Для пристроїв, не сумісних з операцією seek (таких як термінали та принтери), або якщо потік stream не посилається на відкритий файл, значення, що повертається не визначене.

FTIME <sys\types.h>,<sys\timeb.h> void ftime(timeptr);

struct timeb *timeptr; //вказівник на структуру timeb

Видає поточний час і зберігає його в структурі, на яку вказує timeptr. Структура timeb описана у <sys\timeb.h>. Вона містить 4 поля: time, millitm, timezone, dstflag, які мають на-

ступні значення:

time Час, у секундах, що пройшов від значення 00:00:00 часу по Гринвічу, тобто з 1січня 1970 р.

millitm Залишок у мілісекундах.

392

timezone Різниця в хвилинах (у напрямку до заходу) між значенням часу за Гринвічем і місцевим часом. Значення timezone визначається з значення timezone (див. tzset).

dstflag Ненульове значення, якщо зона переходу на зимовий/літній час є у зоні місцевого часу.

daylight ( див. tzset.)

Значення, що повертається, немає.

FWRITE <stdio.h>

int fwrite(buffer, size, count, stream);

char *buffer; //вказівник на дані, що записуються int size; //розмір елемента в байтах

int count; //максимальна кількість елементів, що записуються

FILE *stream;

Записує count елементів розміром size із buffer у вихідний потік stream. Файловий покажчик, зв’язаний з stream, збільшується на кількість записаних байт.

Функція повертає кількість реально записаних елементів.

GCVT <stdio.h>

char *gcvt(value, ndec, buffer); double value; //вихідне значення

int ndec; //кількість значущих цифр, що запам’ятовуються char *buffer; //пам’ять для збереження результату

Перетворює значення з плаваючою крапкою value у символьний рядок і запам’ятовує його у буфері buffer.

Повертає вказівник на рядок цифр. У випадку помилки нічого не повертається.

GETC – GETCHAR <stdio.h> int getc (stream); FILE *stream;

Макрос getc читає окремий символ з поточної позиції потоку stream і змінює відповідний файловий покажчик так, щоб він вказував на наступний символ.

int getchar();

Макрос getchar ідентичний getc(stdin).

Повертають прочитаний символ або EOF у випадку помилки чи досягнення кінця файлу.

GETCH <conio.h> int getch();

393

Читає окремий символ безпосередньо з консолі без його ехо-відображення. Якщо введено CONTROL-C, система ви-

конує INT 23H.

Повертає прочитаний символ. У випадку помилки нічого не повертається.

GETCHE <conio.h> int getche ();

Читає окремий символ з консолі з ехо-друком. Якщо введено CONTROL-C, система виконує INT 23H.

Повертає прочитаний символ. У випадку помилки нічого не повертається.

GETCWD <direct.h>

char *getcwd(pathbuf,n);

char *pathbuf; //пам’ять для path-імені int n; //максимальна довжина path-імені

Одержує повне path-ім’я поточної папки і запам’ятовує її в pathbuf. Цілий аргумент n визначає максимальну довжину для path-імені.

Повертає pathbuf або NULL у випадку помилки.

GETENV <stdlib.h>.

char *getenv(varname);

char *varname;// ім’я змінної оточення

Повертає вказівник на значення змінної оточення для відповідного імені varname цієї змінної. Змінні оточення визначають оточення, у якому виконується процес (наприклад, значення path для пошуку бібліотек).

Повертає вказівник на значення (рядок) змінної оточення, що містить поточне зачення рядка varname. Повертається значення NULL, якщо шукана змінна в даний момент не визначена.

GETPID <process.h> int getpid();

Повертає ідентифікатор процесу (номер) ID, що унікально визначає процес.

Повертає ідентифікатор процесу ID. У випадку помилки нічого не повертає.

GETS <stdio.h>

char *gets(buffer);

char *buffer; //пам’ять для збереження рядка, що вводиться

394

Читає рядок з потоку stdin і запам’ятовує його в буфері buffer. Рядок складається з набору символів і закінчується символом нового рядка ‘\n’. Перед поверненням функція gets замінює символ нового рядка символом ‘\0’, на відміну від функції fgets, яка зберігає символ нового рядка.

Повертає свій аргумент або NULL у випадку помилки.

GETW <stdio.h>

int getw (stream);

FILE *stream; вказівник на структуру FILE.

Читає двійкове значення типу int з потоку stream і змінює відповідний файловий покажчик (якщо він є) так, щоб він вказував на наступний непрочитаний символ.

Повертає ціле значення або EOF у випадку помилки чи досягнення кінця файла.

GMTIME <time.h>

struct tm *gmtime(time);

long *time;// вказівник на збережений час

Перетворює час, збережений як long-значення у структуру. Поля структури:

tm_sec Секунди tm_min Хвилини

tm_hour Години (від 0 до 24) tm_mday День місяця (від 1 до 31) tm_mon Місяці (від 0 до 11; січень=0) tm_year Рік (поточний рік мінус 1900)

tm_wday День тижня (від 0 до 6; неділя = 0) tm_yday День року (від 0 до 365; 1 січня = 0)

tm_isdst Ненульове значення, якщо здійснений перехід на літній/зимовий час, інакше 0.

HALLOC <malloc.h>

char huge *halloc(n,size); long n; //кількість елементів

unsigned size; //довжина кожного елемента в байтах

Виділяє пам’ять для huge-масиву з n елементів, кожен довжиною size байт. Кожен елемент ініціалізується 0. Якщо розмір масиву менший ніж 128, то розмір елемента масиву повинен бути степенем 2.

Повертає char-huge вказівник на виділений простір.

HFREE <malloc.h>

395

void hfree(ptr);

char huge *ptr; //вказівник на виділений блок пам’яті

Звільняє блок пам’яті. Аргумент ptr вказує на раніше виділений блок пам’яті за допомогою виклику halloc. Значення, що повертається, немає.

HYPOT <math.h>

double hypot(x,y); double x,y;

Обчислює довжину гіпотенузи прямокутного трикутника за довжинами двох сторін x і y. Виклик hypot еквівалент-

ний sqrt(x*x + y*y);

Повертає довжину гіпотенузи.

INP <conio.h>

int inp(port);

unsigned port; // номер порту

Читає один байт із порту введення port. Аргумент port може бути будь-яким беззнаковим цілим у межах від 0 до

65535.

Повертає прочитаний байт із port. У випадку помилки нічого не повертає.

INT86 <dos.h>

int int86(intno,inregs,outregs); int ntno; // номер переривання

union REGS *inregs; // значення регістрів до виклику union REGS *outregs; // значення регістрів після виклику

Виконує переривання, що визначене номером переривання intno. Перед виконанням переривання int86 копіює вміст inregs у відповідні регістри. Після виконання переривання функція копіює значення поточного регістра в outregs. Вона також копіює статус прапорця системи в поле cflag, що міститься в outregs. Аргументи inregs і outregs є об’єднаннями типу REGS. Тип об’єднання оголошений у заголовочному файлі <dos.h>.

INTDOS <dos.h>

int intdos(inregs, outregs);

union REGS *inregs; //значення регістрів до виклику union REGS *outregs; //значення регістрів після виклику

Здійснює виконання системного виклику MS DOS (шляхом виконання команди INT 21H), що визначений значенням

396

регістрів, оголошених у inregs, і повертає результат системного виклику в outregs. Перед виконанням INT 21H копіює вміст inregs у відповідні регістри. Після виконання переривання копіює поточні значення регістрів в outregs. Аргументи inregs і outregs є об’єднаннями типу REGS. Тип об’єднання оголошений у заголовочному файлі <dos.h>.

Повертає значення регістра AX після завершення системного виклику. Якщо поле cflag у outregs є ненулевим, виникає помилка.

INTDOSX <dos.h>

int intdosx(intno,inregs,outregs,segregs);

union REGS *inregs; //значення регістрів до виклику union REGS *outregs; //значення регістрів при поверненні struct SREGS *segregs; //значення сегментів при виклику

Здійснює виконання системного виклику DOS, що визначений значенням регістрів inregs, і повертає результат системного виклику в outregs. На відміну від функції intdos, функція intdosx приймає значення сегментних регістрів в segregs, дозволяючи програмам, що використовують сегменти даних моделі huge чи far-вказівники, визначити, який сегмент чи вказівник повинен бути використаний протягом системного виклику. Аргументи inregs і outregs є об’єднаннями типу REGS. Аргумент segregs є структурою типу SREGS. Ці типи оголошені в include-файлі <dos.h>. Для активізації системного виклику функція intdosx виконує команду INT 21H. Перед виконанням команди функція копіює вміст inregs і segregs у відповідні регістри. У segregs використовуються тільки значення регістрів DS і ES. Після повернення команди INT intdosx копіює поточне значення регістрів в outregs і перезаписує DS. Вона також копіює статус прапорця системи в поле cflag, розміщене в outregs. Якщо це поле є ненульовим, прапорець встановлюється за допомогою системного виклику і вказує на помилку.

Повертає значення регістра AX після завершення системного виклику. Якщо поле cflag у outregs є ненулевим, виникає помилка.

ISALNUM-ISASCII <ctype.h> int isalnum (c);

int c;// вхідний символ

397

Визначає чи належить символ с до алфавітно-цифрового типу (A-Z, a-z, 0-9).

int isalpha(c);

Визначає чи є символ с літерою (A-Z, a-z). int isascii(c);

Визначає чи є символ с кодом ASCII (0x00-0x7F). Повертають ненульове значення, якщо виконуються умови перевірки і нульове значення в противному випадку.

ISATTY <io.h>

int isatty(handle); int handle;

Визначає чи пов’язаний даний дескриптор handle із символьним пристроєм (термінал, консоль, принтер, послідовний порт).

Повертає ненульове значення, якщо пристрій є символьним і 0 в противному випадку.

ISCNTRL-ISXDIGIT <ctype.h> iscntrl(c);

int c;// вхідний символ

Визначає чи є символ с управляючим символом (0х00-

0х1f або 0x7F). isdigit (c);

Визначає чи є с цифрою (0-9). isgraph(c);

Визначає чи є с символом, що друкується (крім символу пропуску) (0х21-0х7e).

islower(c);

Визначає чи є символ с малою літерою (a-z). isprint(c);

Визначає чи є с символом, що друкується (0x20-0x7e) ispunct(c);

Визначає чи є символ с знаком пунктуації (якщо переві-

рки за допомогою isalnum(c), iscntrl(c) і isspace(c) мають не-

гативний результат). isspace(c);

Визначає чи є с символом пропуску (0x09-0x0d чи 0x20). isupper(c);

Визначає чи є символ с великою літерою(A-Z). isxdigit(c);

398

Визначає чи є с шістнадцятковою цифрою (A-F,a-f, 0-9). Повертають ненульове значення, якщо виконуються умови перевірки і нульове значення в противному випадку.

ITOA <stdlib.h>

char *itoa(value,string,radix); int value; //вихідне число

char *string; // рядок результату int radix; //основа value

Перетворює символи числа value у символьний рядок, що закінчується NULL-символом, і запам’ятовує результат у string. Аргумент radix визначає основу системи числення для value; його значення може лежати в межах від 2 до 36. Якщо radix = 10 і value – від’ємне число, те першим символом у рядку результату буде знак мінус.

Повертає вказівник на рядок. У випадку помилки нічого не повертається.

KBHIT <conio.h> int kbhit();

Перевіряє натискання клавіші на консолі.

Повертає ненульове значення, якщо клавіша натиснута і 0 у противному випадку.

LABS <stdlib.h> long labs(n); long n;

Повертає абсолютне значення свого аргумента n.

LDEXP <math.h>

double ldext(x,exp); double x;

int exp;

Повертає значення x, помножене на 2 в степені exp.

LFIND – LSEARCH <search.h>

char *lsearch(key,base,num,width,compare); char *lfind(key,base,num,width,compare); char *key; //ключ пошуку

char *base; //вказівник на пошукову базу даних unsigned num,width; //кількість і розмір елементів

int (*compare)(const void *, const void *); //вказівник на функ-

цію порівняння.

399

Функції lsearch і lfind здійснюють рядковий пошук для значення key у масиві з num елементів розміром по width байт. (На відміну від bsearch, lsearch і lfind не вимагають відсортованості масиву). Аргумент base є вказівником на базу даних масиву, у якому здійснюється пошук key. Якщо key не знайдений, lsearch дописує його в кінець. Функція lfind лише здійснює пошук. Аргумент compare є вказівником на функцію, створену користувачем, що порівнює два елементи масиву і повертає значення, яке визначає співвідношення елементів:

не дорівнює 0 element 1 і element 2 різні;

0 element 1 дорівнює element 2.

Обидві функції lsearch і lfind повертають вказівник на перше знаходження key у масиві, на який вказує base. Якщо key не знайдений, то функції повертають NULL.

LOCALTIME <time.h>

struct tm *localtime(time);

long *time; //вказівник на збережений час

Перетворює час, збережений як значення типу long, у структуру.

Функція localtime повертає вказівник на структуру. У випадку помилки значення, що повертається, немає.

Див.також asctime, ctime, ftime, gmtime, time, tzset. LOCKING <sys\locking.h>, <io.h>

int locking(handle,mode,nbyte);

int handle; // файловий дескриптор int mode; // режим блокування файлу int nbyte; //число блокованих байт

Блокує чи розблоковує nbytes байт файлу, визначеного дескриптором handle. Блокування байт у файлі не дозволяє читання та запис заблокованої області іншими процесами. Розблокування файлу дозволяє іншим процесам читати або записувати байти, заблоковані раніше. Блокування чи розблокування починається з поточної позиції вказівника на файл і поширюється до наступних nbyte байт або до кінця файлу.

Аргумент mode визначає виконувані дії блокування: LK_LOCK Блокування заданих байт. Якщо байти не

вдалось заблокувати, відбувається повторна спроба блокування через 1 секунду. Якщо

400

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]