
osn_progr_final
.pdfФункція strerror не повертає ніякого значення.
Див. також clearerr, ferror, perror.
STRLEN <string.h>
int strlen(string);
char *string; //рядок, що закінчується нульовим символом Повертає в байтах довжину рядка string, причому нульо-
вий символ ‘\0’ у довжину не входить.
STRLWR <string.h>
char * strlwr(string); char * string;
Перетворює будь-які літери верхнього регістра рядка string, що закінчується нульовим символом, у літери нижнього регістра. Інші символи не розглядаються.
Повертає вказівник на перетворений рядок string. Значення, що повертається, у випадку помилки немає.
STRNCAT-STRNSET <string.h>
Функції strncat, strnsmp, stricmp, strncpy, strnset працю-
ють з першими n символами рядків, що закінчуються нульовим символом.
char *strncat(string1,string2,n); char *string1; //приймач-рядок char *string2; //джерело-рядок
unsigned int n; //кількість символів, що додаються
Функція strncat додає n перших символів рядка string2 до рядка string1, закінчує результуючий рядок нульовим символом ‘\0’ і повертає вказівник на приймач-рядок (string1). Якщо n більше, ніж довжина рядка string2, тоді замість n використовується довжина рядка.
int strncmp(string1,string2,n); char *string1;
char string2;
unsigned int n; //кількість символів, що порівнюються Лексикографічно порівнює перші n символів рядків
string1 і string2 і повертає значення, що вказує на відношення
між підрядками: |
|
|
ЗНАЧЕННЯ |
ЗМІСТ |
|
менше 0 |
підрядок string 1 |
менше string 2; |
0 |
підрядок string 1 |
дорівнює string 2; |
більше 0 |
підрядок string 1 |
більше string 2. |
431
int strnicmp(string1,string2,n); char *string1;
char string2; unsigned int n;
Регістро-незалежна версія strncmp. char *strncpy(string1,string2,n);
char *string1; //приймач-рядок char *string2; //джерело-рядок
unsigned int n; //кількість символів, що додаються
Копіює точно n символів рядка string2 до рядкf string1 і повертає string1. Якщо n менше, ніж довжина string2, нульовий символ закінчення ‘\0’ автоматично не додається. Якщо n більше, ніж довжина string2, результат string1 заповнюється нульовими символами, аж до досягнення довжини n.
char *strnset(string,c,n,);
char *string; //початковий рядок int c; //символ заповнення
unsigned int n; //кількість прийнятих символів
Встановлює перші n символів string у символ c і повертає вказівник на змінений рядок. Якщо n більше, ніж довжина рядка string, замість n використовується довжина string.
Див. також strcat, strcmp, strcpy, strset. STRPBRK <string.h>
char *strpbrk(string1,string2); char *string1; //джерело-рядок
char *string2; //множина символів
Повертає вказівник на перше входження в string1 будьякого символу з string2. Нульовий символ при пошуку не розглядається. NULL визначає відсутність спільних символів у string1 і string2.
STRRCHR <string.h>
char *strrchr(string,c);
char *string; //рядок-джерело int c; //символ пошуку
Повертає вказівник на останнє входження символу c у рядок string. Нульовий символ закінчення ‘\0’ рядка string включається в пошук. Вказівник NULL повертається, якщо заданий символ не знайдений.
Див. також strchr, strpbrk.
432
STRREV <string.h>
char *strrev(string);
char *string; //рядок, що зберігається
Змінює порядок символів у заданому рядку string (переписує його з кінця). Нульовий символ закінчення ‘\0’ залишається на місці.
Повертає вказівник на змінений string.
STRSET <string.h>
char *strset(string,c); char *string;
int c;
Встановлює усі символи заданого рядка string рівними с, крім нульового символу кінця рядка ‘\0’.
Повертає вказівник на змінений рядок.
STRSPN <string.h>
int strspn(string1,string2); char *string1;
char *string2;
Повертає індекс першого символу в рядку string1, що не належить string2.
Див. також strcspn.
STRSTR <string.h>
char *strstr(srting1,string2); char *string1;
char *string2;
Повертає вказівник на перше входження string1 у string2.
STRTOD-STRTOL <stdlib.h> double strtod(nptr, endptr);
char *nptr; //вказівник на рядок
char **endptr; // вказівник на кінець перегляду long strol(nptr,endptr,base);
char *nptr; char **endptr;
int base; //основа
Функції strtod і strtol відповідно перетворюють символьний рядок до значення з подвійною точністю чи до подвійного цілого. Вихідний рядок string являє собою послідовність символів, що інтерпретуються як числове значення відповід-
433
ного типу. Ці функції припиняють читання рядка як тільки зустрінеться символ, що не може бути частиною числа (це може бути нульовий символ ‘\0 наприкінці рядка); для strtol символом переривання може бути також перший цифровий символ, що більший чи рівний base. Якщо endptr – не NULL, *endptr указує на той символ, на якому зупиняється перегляд. Функція strtod припускає, що nptr вказує на рядок, що має наступну форму:
[whitespace][sign][digiits][.digits][{d:D:e:E}[sign]digits]
З появою першого символу, що не відповідає цій формі, обробка припиняється.
Функція strtol припускає, що nptr вказує на рядок наступної структури:
[whitespace][sign][0][x][digits]
Якщо base лежить між 2 і 36, це значення використовується як основа системи числення даного числа. Якщо base = 0, початкові символи рядка, на які вказує nptr, використовуються для визначення основи. Якщо перший символ – 0 і другий – одна з цифр від 1 до 7, то рядок інтерпретується як вісімкове ціле; якщо перший символ 0, а другий x чи X, тоді рядок розглядається як шістнадцяткове ціле; якщо перший символ належить послідовності 1-9, то рядок розглядається як десяткове ціле.
Функція strtod повертає значення числа з плаваючою крапкою (крім випадків переповнення чи втрати значимості результату). У випадку переповнення або втрати значимості результату повертається відповідно +HUGE_VAL чи - HUGE_VAL.
Функція strtol повертає значення перетвореного рядка, крім випадку переповнення чи втрати результату. У цьому випадку повертається відповідно LONG_MAX чи LONG_MIN. Обидві функції встановлюють errno у ERANGE.
Див. також atof, atol.
STRTOK <string.h>
char *strtor(string1,string2);
char *string1; // рядок, що містить символи char *string2; //множина символів-обмежників
Зчитує з рядка string1 підрядки, що визначаються обмежувачами з множини символів, записаних у string2. Символи
434
в string1 можуть відокремлюватися одним чи більше обмежувачем з string2(знаки “,”, “ “ тощо). При першому виклику strtok для заданого рядка string1, знаходить перший підрядок, що обмежується будь-яким символом з string2. При цьому повертається вказівник на перший символ цього підрядка. Для того, щоб прочитати наступний підрядок з string1, функція strtok викликається з NULL значенням для аргументу string1. Тоді повертається вказівник на початок вже цього підрядка і т.д. якщо підрядки вичерпуються, повертається
NULL. STRUPR <string.h>
char *strupr(string); char *string;
Перетворює будь-які літери, записані в нижньому регістрі з string до літер верхнього регістра. Інші символи не розглядаються.
Повертає вказівник на претворений рядок string. Значення, що повертається, у випадку помилки немає.
Див. також strlwr.
SWAB <stdlib.h>
void swab(source, destination, n); char *source;
char *destination; int n;
Функція swab копіює n байт з source, обмінює кожну пару суміжних байт і зберігає результат у destination.
Значення, що повертається, немає.
Див. також fgets, fputs.
SYSTEM <process.h>, <stdlib.h> int system(string);
char *string;
Передає заданий рядок string інтерпретатору команд і обробляє цей рядок як команду MS DOS.
Повертає значення 0 у випадку успіху чи -1 у випадку помилки.
Див. також execl, execle, execlp, execv, execve, execvp, exit,
_exit, spawnl, spawnle, spawnlp, spawnlpe, spawnv, spawnve, spawnvp.
TAN-TANH <math.h>
435
double tan(x); double tanh(x); double x; // радіани
Функції tan і tanh обчислюють і повертають відповідно тангенс і гіперболічний тангенс x.
Див.також acos, asin, atan, atan2, cos, cosh, sin, sinh.
TELL <io.h>
long tell(handle);
int handle; //дескриптор, що посилається на відкритий файл Повертає поточну позицію файлового покажчика,
зв’язаного з дескриптором handle. У випадку помилки повертажється -1L.
TEMPNAM – TMPNAM <stdio.h> char *tmpnam(string);
char *string; //вказівник на тимчасове ім’я. char *tempnam(dir, prefix);
char *dir; char *prefix;
Функція tmpnan генерує ім’я тимчасового файлу. Це ім’я зберігається в string. Якщо string є NULL, пам’ять для рядків розміщується за допомогою функції malloc. При цьому, користувач не відповідає за звільнення пам’яті. Символьний рядок, створений за допомогою tmpnam, складається з цифр від "0" до "9"; чисельне значення цього рядка може змінюватися від 1 до 65535.
Функція tempnam дозволяє користувачу створити тимчасовий файл в іншій папці. Prefix визначає назву папки.
Ці функції повертають вказівник на згенероване ім’я, якщо є можливість створити таке ім’я або NULL в противному випадку.
TIME <time.h>
long time(timeptr);
long *timeptr; // пам’ять для збереження часу
Повертає кількість секунд, що пройшли від 00:00:00 – значення часу по Гринвічу, тобто з 1 січня 1970 року. Значення, що повертається, зберігається за адресою, заданою в timeptr. У випадку помилки повертається NULL.
Див. також asctime, ftime, gmtime, localtime, utime.
TMPFILE <stdio.h>
436
FILE * tmpfile();
Створює тимчасовий файл в режимі "w" і повертає вказівник на цей файл. Якщо файл не може бути відкритий, функція tmpfile повертає вказівник NULL.
Цей файл автоматично видаляється, коли програма нормально закінчується або при виклику функції rmtmp, якщо поточну робочу папку не було змінено.
Тимчасовий файл відкривається в режимі "w".
Див. також tmpnam, tempnam, rmtmp.
TOASCII-_TOUPPER <ctype.h> int toascii(c)
int c;
Перетворює символ c у символ ASCII, встановлюючи перші 7 бітів c у нуль. Якщо символ c вже відповідає ASCII, то він не змінюється.
int tolower(c);
Перетворює символ c у символ нижнього регістра, якщо він записаний у верхньому. Якщо c в нижньому регістрі – нічого не змінюється.
int _tolower(c)
Перетворює символ c у малу літеру, якщо він записаний лише у верхньому регістрі. В противному випадку результат не визначений.
int toupper(c)
Перетворює c у символ верхнього регістра, якщо він записаний у нижньому. В противному випадку нічого не відбувається.
int _toupper(c)
Перетворює c у символ верхнього регістра, якщо він записаний у нижньому. В противному випадку результат не визначений.
Макроси toascii, tolower, toupper і _toupper повертають перет-
ворений символ с. Значення, що повертається, у випадку помилки немає.
Див. також isalnum, isalpha, isascii, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit.
TZSET <time.h> void tzset();
int daylight; //прапор переходу на літній/зимовий час
437
long timezone; //розходження в секундах від GMT char *tzname[2]l //рядки тимчасових зон
Використовує поточну установку змінної оточення TZ для призначення значення трьом змінним: daylight, timezone, tzname. Ці змінні використовуються функціями ftime, localtime для зміни значення часу за Гринвічем (GMT) на місцевий час.
Коли викликається tzset, змінним daylight, timezone, tzname
призначаються наступні значення:
timezone Розходження між значенням часу по Гринвічу та місцевого часу;
daylight Ненульове значення, якщо в установці TZ визначено перехід на літній/зимовий час; інакше – 0;
tzname[0] Рядкове значення, що визначає трибуквене ім’я тимчасової зони з установки TZ;
tzname[1] Рядкове значення, що визначає зону переходу на літній/зимовий час або порожній рядок, якщо ця зона пропущена в установці TZ.
Якщо TZ не встановлена, за замовчуванням встановлюється PST8PDT, що відповідає зоні Pacific time. За замовчуванням для daylight встановлюється 1, timezone – 28800, tzname[0] – "PST", tzname[1] – "PDT".
Значення, що повертається, немає.
Див. також asctime, ftime, localtime.
ULTOA <stdlib.h>
char ultoa(value, string, radix); unsigned long value; //вихідне число char *string; //рядок результату
int radix; //основа value
Перетворює значення value у символьний рядок, що закінчується символом ‘\0’, і запам’ятовує його в string. Переповнення не контролюється. Аргумент radix визначає основу системи числення value. Він може приймати значення від 2
до 36.
Повертає вказівник на рядок string. Значення у випадку помилки не повертається.
Див. також itoa, ltoa.
UMASK <sys\types.h>, <sys\stat.h>,<io.h> int umask(pmode);
438
int pmode; //доступ, дозволений за замовчуванням Встановлює для поточного процесу маску дозволеного
доступу до файлу в режимі, що визначається pmode. Маска дозволеного доступу використовується для модифікації встановленого доступу для нових файлів, створених за допомогою функцій create, open чи sopen. Якщо біт у масці дорівнює 1, то відповідний йому біт у значенні режиму доступу до файлу встановлюється в 0 (заборона). Якщо біт у масці дорівнює 0, то відповідний йому біт у значенні режиму доступу до файлу залишається незміненим. Маска доступу до нового файла не встановиться, доки файл не закриється хоча б один раз. Аргумент pmode є константним виразом, що містить одну чи обидві константи S_IWRITE і S_IREAD, визначені в <sys\stat.h>. Коли задані обидві константи, вони поєднуються логічним оператором АБО(|).
Значення аргументів pmode:
S_IWRITE |
дозволено запис; |
S_IREAD |
дозволено читання; |
S_IREAD | S_IWRITE дозволено читання та запис. Повертає попереднє значення pmode. У випадку помилки результату немає.
Див.також chmod, creat, mkdir, open.
UNGETC <stdio.h>
int ungetc(c, stream);
int c; //символ, що повертається
FILE *stream;
Повертає символ c у заданий потік введення stream. Stream повинен бути буферизованим і відкритим для читання. Наступна операція читання з потоку stream починається із символу c. EOF повернути в потік за допомогою використання ungetc не можна. Ця функція повертає значення помилки, якщо з stream нічого не прочитано чи якщо c не вдалось повернути. Символи, поміщені в потік за допомогою ungetc можуть бути знищені, якщо функції fflush, fseek, fsetpos чи rewind викликаються перед зчитуванням символу з потоку.
Функція повертає символ c або EOF у випадку помилки.
Див. також getc, getchar, putc, putchar.
UNGETCH <conio.h> int ungetch(c);
439
int c; //символ, що повертається
Повертає символ c на консоль і визначає його як наступний символ, що читається. Функція ungetch повертає помилку, якщо перед наступним читанням вона викликається більше ніж один раз.
Функція повертає символ c або EOF у випадку помилки.
Див. також cscanf, getch, getche.
UNLINK <io.h>, <stdio.h> int unlink(pathname);
char *pathname; // path-ім’я файлу, що видаляється Видаляє файл, визначений за допомогою pathname.
Повертає 0, якщо файл успішно вилучений чи -1 у противному випадку.
UTIME <sys\types.h>, <sys\utime.h> int utime(pathname, times);
char *pathname; // path-ім’я файлу struct utimbuf *times;
Встановлює час модифікації файлу, визначеного за допомогою pathname. Процес повинен мати доступ для запису до файлу, інакше час не можна буде змінити. Оскільки структура utimbuf містить поле часу доступу, у MS DOS встановлюється тільки час модифікації.
Якщо times є NULL-вказівником, час модифікації встановлюється за поточним часом. Повертає значення 0, якщо час модифікації було змінено чи -1, що свідчить про помилку.
Див. також asctime, ctime, fstat, ftime, gmtime, localtime.
VA_ARG - VA_START <varargs.h>, <stdarg.h>
Макроси va_start, va_arg, va_end забезпечують спосіб доступу до аргументів функції, коли вона має змінну кількість аргументів.
Доступні 2 версії макросів: макроси, оголошені в <varargs.h>, які сумісні з визначенням системи UNIX 5, і макроси, оголошені <stdarg.h>, що приведені у відповідності зі стандартом ANSI C. Обидві версії макросів припускають, що функція може мати змінну кількість аргументів, що слідують за деякою фіксованою наперд заданою в оголошенні кількістю аргументів.
Для системи UNIX :
440