Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функції стандартної бібліотеки роботи




Додаток Г

Додаток В

Функції стандартної бібліотеки для перетворення

рядка у число та числа у рядок(<stdlib.h>)

Назва Прототип Призначення
atof double atof(char *str); Перетворює рядок str в дійсне число подвійної точності. Перетворення здійснюється до першого недопустимого символа або до симмвола '\0'. Якщо не може перетворити, то повертає 0
atoi int atoi(char *str); Перетворює рядок str в десяткове ціле. Якщо число перевищує діапазон int, то повертає 2 молодші байти. Якщо не може перетворити, то повертає 0
atol long atol(char *str); Перетворює рядок str в довге десяткове ціле
ecvt char *ecvt(double v, int dig, int *dec, int *sign); Перетворює дійсне v у рядок: dig - кількість цифр числа, що будуть перетворені в рядок, dec - позиція десяткової крапки від початку рядка (якщо dec<=0, то позиція десяткової крапки знаходиться зліва від числа), sign є {0,1}- знак числа. Символ '\0' додається. Повертає вказівник на рядок
fcvt char *fcvt(double v, int dig, int *dec, int *sign); Те ж саме що й ecvt, тільки dig - кількість цифр після крапки
gcvt char *gcvt(double v, int dig, char *buf); Перетворює дійсне v у рядок. На відміну від ecvt() та fcvt() розміщує рядок у попередньо оголошений буфер buf: dig - це кількість символів рядка. Результуючий рядок містить представлення числа з фіксованою або плаваючою крапкою в залежності від того, чи може число розміститися в dig позиціях
itoa char *itoa(int v, char *str, int radix); Перетворює ціле v в рядок str у системі числення radix (2<=radix<=36). Повертає вказівник на рядок
ltoa char *ltoa(long v, char *str, int radix); Перетворює довге ціле v в рядок символів str у системі числення radix
ultoa char *ultoa(unsigned long v, char *str, int radix); Перетворює беззнакове довге ціле v в рядок символів у системі числення radix

з динамічною пам’яттю (<alloc.h>, <stdlib.h>)

Назва Звертання Призначення
calloc void * calloc(size_t nitems, size_t size); Виділяє динамічну пам’ять для масиву nitems елементів, кожен з яких займає sise байтів. Виділена пам’ять ініціалізується нулями. Повертає вказівник на виділену область, або NULL, якщо немає доступної пам’яті.
free void free(void *block); Звільняє блок динамічної пам’яті, закріпленої за вказівником block.
malloc void * malloc(size_t size); Виділяє size байтів динамічної пам’яті. Ініціалізація виділеної пам’яті не здійснюється. Повертає вказівник на виділену область, або NULL, якщо немає доступної пам’яті.
realloc void * realloc(void *block, size_t size); Змінює розмір динамічної пам’яті, раніше виділеної функціями calloc або malloc та закріпленої за вказівником block. Встановлюється новий розмір пам’яті, рівний size байтів. Вміст старого блоку не змінюється. Повертає вказівник на початок виділеної області пам’яті.
brk int brk(void *addr); Визначає нове значення змінної break, яка визначає адресу першого байта оперативної пам’яті, не доступної для програми. Тим самим змінюється розмір оперативної пам’яті, відведений для поточного процесу. Функція повертає 0 при успішній зміні розміру оперативної пам’яті, або -1, якщо розмір пам’яті не може бути змінений.
sbrk void * sbrk(int incr); Змінює значення глобальної змінної break на incr байтів, що призводить до зміни (збільшення або зменшення) розміру оперативної пам’яті, відведеної поточному процесу. Значення змінної break визначає адресу першого байта оперативної пам’яті, не доступної для програми. Функція повертає старе значення змінної break, або -1, якщо розмір пам’яті процесу не може бути змінений.
heapcheck int heapcheck(void); Перевіряє блоки динамічної пам’яті на помилки та її цілісність. Якщо перевірка була успішною, то повертає значення, більше від нуля, інакше - менше від нуля значення.
heapfillfree int heapfillfree(unsigned int fillvalue); Заповнює вільні блоки динамічної пам’яті значенням величини fillvalue. При успішному завершенні повертає більше від нуля значення, інакше - менше від нуля значення.
heapcheckfree int heapcheckfree(unsigned int fillvalue); Перевіряє вільні блоки динамічної пам’яті на заповненість значеннями fillvalue. При успішному завершенні повертає більше від нуля значення, інакше - менше від нуля значення.
coreleft unsigned long coreleft (void); Повертає розмір пам’яті у байтах, яка є доступною для динамічного розподілу. Для моделей пам’яті tiny, small, medium повертає вільний об’єм ближньої, а для моделей compact, large, huge - дальньої динамічної пам’яті.
heapchecknode int heapchecknode(void far *node); Перевіряє стан блоку динамічної пам’яті, що визначається вказівником node. При успішному завершенні повертає більші від нуля значення: HEAPEMPTY (= 1) No heap FREEENTRY (= 3) Node is a free block USEDENTRY (= 4) Node is a used block Якщо помилка, то повертає менші від нуля значення: HEAPCORRUPT (= -1) Heap has been corrupted BADNODE (= -2) Node could not be found
heapwalk int heapwalk(struct farheapinfo far *hi); Сканує динамічну пам’ять від елемента до елемента. Аргументом є вказівник на структуру heapinfo:struct heapinfo { void *ptr; unsigned int size; int in_use; }; При першому виклику поле hi.ptr повинно дорівнювати NULL. Далі через це поле повертається адреса першого блоку динамічної пам’яті. Поле hi.size зберігає розмір блоку у байтах. Поле hi.in_use є прапорцем, який встановлений, якщо блок використовується у даний час. Функція heapwalk вважає, що динамічна пам’ять є коректною. Для перевірки динамічної пам’яті перед викликом heapwalk необхідно викликати heapcheck. При успішному завершенні повертає значення, більші від нуля: _HEAPEMPTY (= 1) Немає вільної ДП. _HEAPOK (= 2) ДП є перевірена (heapinfo або farheapinfo блоки містять правильні дані) _HEAPEND (= 5) Досягнуто кінець ДП. Якщо помилка, то повертає менше від нуля значення.
farcalloc void far * farcalloc(unsigned long nunits, unsigned long unitsz); calloc для дальньої динамічної пам’яті
farcoreleft unsigned long farcoreleft(void); coreleft для дальньої динамічної пам’яті
farfree void farfree(void far *block); free для дальньої динамічної пам’яті
farmalloc void far * farmalloc(unsigned long nbytes); malloc для дальньої динамічної пам’яті
farrealloc void far * farrealloc(void far *oldblock, unsigned long nbytes); realloc для дальньої динамічної пам’яті
farheapcheck int farheapcheck(void); heapcheck для дальньої динамічної пам’яті
farheapchecknode int farheapchecknode(void far *node); heapchecknode для дальньої динамічної пам’яті
farheapfillfree int farheapfillfree(unsigned int fillvalue); heapfillfree для дальньої динамічної пам’яті
farheapcheckfree int farheapcheckfree(unsigned int fillvalue); heapcheckfree для дальньої динамічної пам’яті
farheapwalk int farheapwalk(struct farheapinfo *hi); heapwalk для дальньої динамічної пам’яті

Примітка: тип size_t визначений так: typedef unsigned size_t;
Додаток Д

Функції стандартної бібліотеки для роботи з файлами (<stdio.h>)

Назва Прототип Призначення
clearerr void clearerr(FILE *stream); Скидає ознаку помилки та ознаку кінця файлу для заданого потоку. Повинна бути викликана для продовження виконання операцій з потоком після виникнення помилки. Замість clearer може бути викликана функція rewind.
fclose int fclose(FILE *stream); Закриває потік, пов’язаний з відкритим функцією fopen файлом stream. Перед закриттям потоків дані записуються з буфера у файл. Пам’ять відведена під буфер автоматично вивільняється.
fflush int fflush(FILE *stream); Вивантажує вміст буфера, пов’язаного з потоком stream, у відповідний файл. Потік залишається відкритим. Якщо файл відкритий для читання, то вміст буфера очищується.
flushall int flushall(void); Вивантажує усі буфери потоків у відповідні файли. Потоки не закриваються.
fgetc int fgetc(FILE *stream); Читає один символ з потоку stream та переміщує вказівник на наступний символ. Повертає введений символ або EOF, якщо помилка або кінець файлу.
fgetpos int fgetpos(FILE *stream, fpos_t *pos); Повертає поточне значення вказівника позиції запису-читання файлу stream. Розміщує значення вказівника за адресою pos. При нормальному завершенні функція fgetpos повертає 0, інакше – відмінне від нуля значення.
fgets char * fgets(char *s, int n, FILE *stream); Читає рядок з потоку stream та розміщує його за адресою s. Символи читаються до символа ‘\n’, який включається у рядок, або до кінця потоку, або поки не буде прочитано n-1 символ. У кінець рядка автоматично додається символ ‘\0’. Повертає адресу рядка, або NULL, якщо помилка, або досягнуто кінець файла.
fopen FILE * fopen(const char * path, const char *mode); Відкриває файл з іменем path та пов’язує його з потоком для виконання буферизованого введення-виведення. Аргумент mode задає спосіб доступу та режим відкриття файлу. Спосіб доступу може приймати такі значення: “r” - для читання (файл повинен існувати); “w”- для запису (якщо файл існує, то його вміст витирається); “a” – для запису в кінець файла (якщо файл не існує, то він буде створений); “r+”- для читання та запису (файл повинен існувати); “w+” - для запису та читання (якщо файл існує, то його вміст витирається); “a+” – для читання та поповнення (якщо файл не існує, то він буде створений). Режим відкриття може приймати такі значення: ‘t’ – текстовий режим; ‘b’ – двійковий режим. Функція повертає вказівник на файлову структуру FILE.
fprintf int fprintf(FILE *stream, const char *format,...); Форматований запис даних у потік stream. Специфікації форматів є такі ж, як для функції printf. Повертає кількість записаних символів. Якщо помилка, то повертає ознаку EOF.
fputc int fputc(int c, FILE *stream); Записує символ c у поточну позицію потоку stream. Повертає записаний символ, або ознаку EOF, якщо помилка.
fputs int fputs(const char *s, FILE * stream); Записує рядок s у потік stream. Кінцевий символ ‘\0’ не записується. Повертає останній записаний символ, або значення 0, якщо рядок порожній, або EOF, якщо помилка.
fread size_t fread(void *ptr, size_t size, size_t n, FILE *stream); Читає n елементів довжиною size байтів кожен з потоку stream та розміщує їх у буфер ptr. Форматних перетворень не відбувається. Символи ‘\n’ спеціально не опрацьовуються. Повертає число прочитаних елементів, яке може бути меншим від n, якщо сталася помилка або досягнуто кінець файлу.
freopen FILE * freopen(const char * path, const char *mode, FILE * stream); Закриває файл, пов’язаний з потоком stream, і перепризначає цей потік на файл, визначений аргументом path. Новий файл відкривається у режимі mode. Функція freopen в основному використовується, щоб зв’язати стандартні потоки stdin, stdout, stderr, stdprn, stdaux з файлами користувача.
fscanf int fscanf(FILE *stream, const char *format,...); Читає дані з потоку stream, виконує форматні перетворення і записує отримані значення у змінні, задані аргументами-вказівниками. Специфікації форматів відповідають функції scanf. Повертає кількість успішно прочитаних та перетворених елементів введення, або ознаку EOF, якщо досягнуто кінець файлу.
fseek int fseek(FILE *stream, long offset, int whence); Переміщує вказівник позиції читання-запису потоку stream на offset байтів відносно початку відліку whence. Аргумент whence може приймати такі значення: SEEK_SET (або 0) – початок файлу; SEEK_CUR (або 1) – поточна позиція файлу; SEEK_END (або 2) – кінець файлу. Вказівник можна перемістити за кінець файлу, але не можна встановити перед початком файлу. Повертає 0, якщо встановлення вказівника пройшло успішно, і ненульове значення при помилці.
fsetpos int fsetpos(FILE *stream, const fpos_t *pos); Встановлює вказівник позиції запису-читання потоку stream на значення у байтах, вказане у змінній за адресою pos. Повертає 0, якщо встановлення вказівника пройшло успішно, і ненульове значення при помилці.
ftell long ftell(FILE *stream); Повертає поточну позицію вказівника запису-читання файла, пов’язаного з потоком stream.
fwrite size_t fwrite(const void *ptr, size_t size, size_t n, FILE * stream); Записує n елементів довжиною size байтів кожен з буфера ptr у потік stream. Форматних перетворень не відбувається. Символи ‘\n’ спеціально не опрацьовуються. Повертає число записаних елементів, яке може бути меншим від n, якщо сталася помилка.
remove int remove(const char *path); Макрос, який витирає закритий файл path. Не може витерти файл з атрибутом “тільки для читання”. Повертає 0 при успішному витиранні. Значення –1 сигналізує про помилку, причина якої міститься у змінній errno: EACCES – ім’я визначає файл, з атрибутом для читання; ENOENT – файл або шлях не знайдені.
rename int rename(const char * oldname, const char * newname); Перейменовує файл або каталог. Ім’я oldname заміняється на newname. Можна перемістити файл з одного каталога в інший, але не можна змінити ім’я логічного диску. Каталоги не можуть бути переміщені. Повертає 0 при успішній операції. Відмінне від нуля значення свідчить про помилку. Причина помилки міститься у змінній errno.
rewind void rewind(FILE *stream); Переміщує вказівник позиції запису-читання на початок відкритого файла.
setbuf void setbuf(FILE *stream, char *buf); Встановлює новий буфер buf для відкритого потоку stream. Якщо buff=NULL, то буферизація відключається. Функція повинна бути викликана зразу за функціями fopen або fseek.
setvbuf int setvbuf(FILE *stream, char * buf, int type, size_t size); Керує буферизацією та розміром буфера файла, зв’язаного з потоком stream. Адреса буфера задається параметром buf. Якщо buf=NULL, то потік не буферизується. Для буферизованого потоку type може приймати такі значення: _IOFBF – буферизація на повний об’єм буфера; _IOLBF – порядкова буферизація – поява символа ‘\n’ призводить до скидання буфера при записі у файл та зупинці дозапису у буфер при читанні з файлу; _IONBF – файл не буферизується. Повертає 0 при успішній операції та відмінне від 0 значення, якщо тип або розмір буфера задані некоректно.
tmpfile FILE * tmpfile(void); Створює та відкриває (у режимі w+) новий тимчасовий файл та повертає вказівник на потік для цього файлу. Якщо файл не може бути відкритий, то повертає NULL. Створений тимчасовий файл знищується при нормальному завершенні програми, або викликом функції rmtmp, при умові, що робочий каталог не було змінено.
tmpnam char * tmpnam(char *s); Створює унікальне ім’я файла та розміщує його за адресою s. Якщо s=NULL, то ім’я розміщується у внутрішньому статичному об’єкті. Функція повертає вказівник на згенероване ім’я.
vfprintf int vfprintf(FILE *stream, const char *format, void * arglist); Здійснює форматоване виведення даних у потік stream. Дані задаються у масиві, вказівник на який визначається параметром arglist.
vfscanf int vfscanf(FILE *stream, const char *format, void * arglist); Здійснює форматоване введення даних з потоку stream. Адреси змінних задаються масивом, вказівник на який визначається параметром arglist.
unlink int unlink(const char *path); Витирає закритий файл, заданий іменем path. Не може витерти файл з атрибутом “тільки для читання”. Повертає 0 при успішному витиранні. Значення –1 сигналізує про помилку, причина якої міститься у змінній errno: EACCES – ім’я визначає файл, з атрибутом для читання; ENOENT – файл або шлях не знайдені.
getc int getc(FILE *fp); Водить символ із потоку fp.
ungetc int ungetc(int c, FILE *stream) Повертає символ c у потік fp. Символ повинен бути прочитаний, інакше тільки один символ може бути повернутий.
putc int putc(const int c, FILE *fp); Запис символа c у потік fp.
feof int feof(FILE *fp); Повертає відмінне від нуля значення, якщо досягнуто кінець файлу.
ferror int ferror(FILE *fp); Повертає відмінне від нуля значення, якщо виникла помилка роботи з файлом.
fcloseall int fcloseall(void); Закриває усі потоки, пов’язані з відкритими файлами, за виключенням стандартних: stdin, stdout, stderr, stdprn, stdaux. Дані з буферів автоматично переписуються у файли. Пам’ять, відведена під буфери, автоматично вивільняється.




Поделиться с друзьями:


Дата добавления: 2015-05-24; Просмотров: 416; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.