stdio.h

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Заголовні файли С

stdio.h (від англ. standard input/output header - стандартний заголовний файл введення/виведення) заголовний файл стандартної бібліотеки мови Сі, що містить визначення макросів, констант та оголошення функцій і типів, що використовуються для різних операцій стандартного введення і виведення.

C++ заради сумісності також використовує stdio.h поряд зі схожим за функціональністю заголовним файлом cstdio, хоча більшою популярністю користується бібліотека <iostream>.

Функції, оголошені в stdio.h, є вельми популярними завдяки тому, що будучи частиною стандартної бібліотеки мови Сі, вони гарантують роботу на будь-якій платформі, яка підтримує Сі. Програми на окремих платформах можуть, тим не менш, мати причини для використання функцій введення/виведення самої платформи замість функцій stdio.h.

Зміст

[ред.] Приклад використання

#include <stdio.h>
 
int main(void)
{
    int ch;
    while ((ch = getchar()) != EOF)
        putchar(ch);
    putchar('\n');
    return 0;
}

Програма, наведена вище, зчитує всю вхідну інформацію зі стандартного введення і виводить її побайтово на стандартний потік виведення, додаючи символ переходу на новий рядок в кінці.

[ред.] Функції

Функції-члени функції, оголошені в stdio.h у загальному випадку можуть бути розділені на дві категорії: функції для операцій з файлами і функції для операцій введення-виведення.

Всі функції в мові Сі (і його численних різновидів) оголошуються в заголовних файлах. Таким чином, програмістам доводиться підключати файл stdio.h до вихідного коду, щоб використовувати функції, оголошені в ньому.

Ім'я Примітка
fclose int fclose (File * stream);

Закриває файл, пов'язаний з потоком і його непричетності. Всі внутрішні буфери, пов'язані з потоком скидаються: зміст будь-якого ненаписані в буфер, що записується і змест будь-якого непрочитаного буфера відкидається.

fopen FILE * fopen ( const char * filename, const char * mode );

Відкриває файл, ім'я якого зазначено в параметрі ім'я файлу і пов'язує його з потоком, які можуть бути ідентифіковані в майбутніх операціях по об'єкту файл, покажчик повертається.

remove int remove ( const char * filename );

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


Rename int rename ( const char * oldname, const char * newname );


rewind void rewind ( FILE * stream );

Встановлює індикатор позиції, пов'язані з потоком в початок файлу.


tmpfile FILE * tmpfile ( void );

Відкрити тимчасовий файл Створює тимчасовий двійковий файл, відкритий для оновлення ( WB + режиму - див FOPEN детальніше). Файл гарантовано буде відрізнятися від будь-якого іншого існуючого файлу. Тимчасовий файл створюється автоматично видаляється, коли потік закритий ( fclose ) або коли програма завершується нормально. У разі успіху, функція повертає покажчик на потік тимчасовий файл створюється. Якщо файл не може бути створена, NULL повертається.

Функції для операцій введення/виведення


Ім’я Примітка
Clearer void clearerr ( FILE * stream );

Скидання як помилки і EOF показників потоку.
Коли потік функція зазнає невдачі або через помилки або тому, що кінець файлу досягнуто,
один з цих внутрішніх показників може бути безліч. Ці показники як і раніше безліч,
поки не буде цього, перемотування назад, FSEEK або fsetpos називається.

Ferror int ferror ( FILE * stream );

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

Ffplush int fflush ( FILE * stream );

Якщо цей потік був відкритий для запису і останньої операції введення/виведення був вихідний операції, будь-які неписані даних у вихідний буфер записується у файл. Якщо вона була відкрита для читання і остання операція була операції введення, поведінка залежить від конкретної реалізації бібліотеки. У деяких реалізаціях це викликає вхідного буфера бути очищені, але це не стандартне поведінку. Якщо аргумент є нульовим покажчиком, всі відкриті файли почервонів. Потік залишається відкритим після цього виклику. При закритті файлу, або через виклик fclose або тому, що програма завершується, всі буфери, пов'язані з його автоматично почервонів.

Fgetpos int fgetpos ( FILE * stream, fpos_t * position );

зберігає позицію покажчика файлу потоку, асоційований з його першим аргументом (FILE *), в його другий аргумент (fpos_t *)

fgetc повертає один символ з файлу
fgets отримує рядок з файлу (що закінчується символом переведення рядка або кінця файлу)
fputc записує один символ в файл
fputs записує рядок в файл
ftell возвращает указатель позиции файла, который может быть передан fseek
fseek виробляє зміщення від поточної позиції у файлі на вказану кількість байт, або від його початку або кінця, в вказівкою напрямку.
fsetpos встановлює вказівник позиції файлу потоку, асоційований з його першим аргументом (FILE *), як зберігається в другому його аргументі (fpos_t *)
fread читає дані з файлу
fwrite записує дані у файл
getc зчитує і повертає символ з даного потоку і змінює покажчик позиції файлу, дозволяє використовувати як макрос з тими ж ефектами, що і fgetc, крім того, що може обчислювати потік більше одного разу
getchar має аналогічний ефект, що і ЕОКП (STDIN)
gets зчитує символи зі стандартного введення до символу переведення рядка і зберігає їх у своєму єдиному аргументі
printf, vprintf використовуються для виведення в стандартний потік виведення
fprintf, vfprintf використовуються для виведення в файл
perror записує повідомлення про помилку в стандартний потік помилок
putc записує і повертає символ в потік і змінює покажчик позиції файлу на нього, можна використовувати як макрос з тими ж властивості, що й fputc, крім того, що він може обробляти потік більше одного разу
putchar, fputchar аналогічні putc (стандартний висновок)
scanf, vscanf використовуються для введення зі стандартного потоку введення
fscanf, vfscanf використовуються для введення з файлу
sscanf, vsscanf використовуються для введення з масиву символів (тобто Рядок у мові Сі)
setvbuf встановлює режим буферизації для даного потоку
tmpnam створює ім'я тимчасового файлу
ungetc поміщає символ назад в потік
puts виводить символьну рядок у стандартний вивід

Типи членів

Типи даних, визначені в заголовному файлі stdio.h містять:

  • FILE - структура, яка містить інформацію про файл або текстовому потоці, необхідну для виконання її операцій введення і виведення операцій, включаючи:
  • файловий дескриптор
  • поточну позицію в потоці
  • індикатор кінця файлу
  • індикатор помилок
  • покажчик на буфер потоку, якщо можливо
  • fpos_t - не массівообразний тип, здатний унікально ідентифікувати позицію кожного байта в файлі.
  • size_t - беззнакових цілий тип, є типом результату виконання оператора SizeOf.

[ред.] Див. також

[ред.] Зовнішні посилання

[ред.] Посилання