Структури
Синтаксис:
struct [ім'я_структури]
{
тип1 елемент1;
тип2 елемент2;
........................
типN елементN;
} [список описів];
Об’явлення typedef
Синтаксис:
struct ім'я_структури
{
тип1 елемент1;
тип2 елемент2;
........................
типN елементN;
};
typedef struct ім'я_структури ім'я_типу;
або
typedef struct [ім'я_структури]
{
тип1 елемент1;
тип2 елемент2;
........................
типN елементN;
} ім'я_типу;
Бітові поля
Синтаксис:
struct [ім'я_структури]
{
тип1 елемент1 : розмір_поля1;
тип2 елемент2 : розмір_поля2;
........................
типN елементN : розмір_поляN;
} [список описів];
Об'єднання
Синтаксис :
union [ім'я_об'єднання]
{
тип1 елемент1;
тип2 елемент2;
........................
типN елементN;
} [список описів];
Перераховані константи
Синтаксис :
enum [ ім'я_типу ] { список_констант } [список описів];
Динамічне виділення пам’яті (stdlib.h, alloc.h)
|
Прототип |
Опис |
|
void *calloc(size_t nmemb, size_t size) |
Динамічно виділяє пам’ять для масиву розміром nmemb елементів, причому розмір кожного елемента складає size байт. |
|
void *malloc(size_t size) |
Динамічно виділяє пам’ять для масиву розміром size байт. |
|
void *realloc(void *block, size_t size) |
Змінює розмір об’єкта block на новий розмір size. |
|
void free(void *block) |
Звільняє виділену пам’ять об’єкта block. |
Файлові потоки
Структура FILE
typedef struct
{
short level; /*рівень буферу*/
unsigned flags; /*статус файлу */
char fd; /*дескриптор файла*/
char hold; /*попередній символ,якщо немає буферу*/
short bsize; /*розмір буферу*/
unsigned char *buffer; /*буфер передавання даних*/
unsigned char *curp; /*поточний активний покажчик*/
short token; /*перевірка коректності*/
} FILE;
Функції роботи з файловими потоками (stdio.h)
|
Прототип |
Опис |
|
FILE *fopen(const char *filename, const char *mode) |
Відкриває файл із заданим ім'ям filename і зв'язує з ним потік. Аргумент mode вказує режим відкриття файла. |
|
int fgetc(FILE *f) |
Зчитує символ з файлового потоку f. |
|
int putc(int ch, FILE *f) |
Виводить символ ch у файловий потік f. |
|
char *fgets(char *s,int n, FILE *stream) |
Зчитує n символів з файлового потоку stream в стрічку s. |
|
int fputs(const char *,s FILE *stream) |
Виводить стрічку s у файловий потік stream. |
|
int fscanf(FILE *stream, const char *format[, address, …]) |
Виконує форматоване зчитування даних з файлового потоку stream. При успішному читанні fscanf повертає кількість прочитаних полів. |
|
int fprintf(FILE *stream, const char *format[,argument,…]) |
Виконує форматоване виведення у файловий потік stream. |
|
int feof(FILE *stream) |
Тестує, чи потік stream досягнув кінця файлу. |
|
int fclose(FILE *stream) |
Закриває файловий потік stream. |
|
size_t fwrite(const void *ptr, size_t size, size_t n, FILE*stream) |
|
|
size_t fread(void *ptr, size_t size, size_t n, FILE *stream) |
|
|
long ftell(FILE *stream) |
Повертає поточну позицію покажчика позиції файла stream. |
|
int fseek(FILE *stream, long offset, int whence) |
Зміщує покажчик позиції файла stream на число байтів offset від точки відліку, яка визначається параметром whence |
|
void rewind(FILE *stream) |
Переміщує покажчик позиції файла на початок файлу. |
Значення аргументу mode функції fopen()
|
"r" |
відкриття файлу без дозволу на модифікацію, файл відкривається лише для читання. |
|
"w" |
створення нового файлу тільки для запису, якщо файл із вказаним ім'ям вже існує, то він перезапишеться. |
|
"a" |
відкриття файлу тільки для додавання інформації в кінець файлу, якщо файл не існує, він створюється. |
|
"r+" |
відкриття існуючого файлу для читання та запису. |
|
"w+" |
створення нового файлу для читання та запису, якщо файл із вказаним ім'ям вже існує, то він перезаписується. |
|
"a+" |
відкриває файл у режимі читання та запису для додавання нової інформації у кінець файлу; якщо файл не існує, він створюється. |
До вказаних специфікаторів в кінці або перед символом "+" може додаватися символ "t" (текстовий файл), або "b" (бінарний, двійковий файл).
Можливі значення параметра whence функції fseek
|
Константа |
whence |
Точка відліку |
|
SEEK_SET |
0 |
Початок файлу |
|
SEEK_CUR |
1 |
Поточна позиція |
|
SEEK_END |
2 |
Кінець файлу |
Дескриптори стандартних потоків введення-виведення
|
потік |
дескриптор |
Опис |
|
stdin |
0 |
стандартний вхідний потік |
|
stdout |
1 |
стандартний вихідний потік |
|
stderr |
2 |
стандартний потік повідомлень про помилки |
|
stdaux |
3 |
стандартний потік зовнішнього пристрою |
|
stdprn |
4 |
стандартний потік виведення на принтер |
