Операционная система UNIX. Руководство программиста


Именованные файлы - часть 2


while ((c = getc (fin)) != EOF) . . .

Здесь символы будут считываться до тех пор, пока не будет достигнут конец файла. Константы EOF, NULL, а также макрос getc()

определены в <stdio.h>. getc()

и другие функции и макросы, составляющие пакет стандартного ввода/вывода, поддерживают продвижение указателя в буфере, ассоциированном с файлом. В случае достижения указателем конца буфера необходимая подкачка символов из файла в буфер (или запись символов из буфера в файл, в случае вывода) производятся функциями стандартного ввода/вывода и самой ОС UNIX. Эти действия системы не видны программе и программисту.

Для разрыва связи между дескриптора файла в Вашей программе и файлом, то есть для его закрытия, используется функция fclose(). После ее успешного выполнения дескриптор может быть закреплен за другим файлом с помощью следующего вызова функции fopen(). Такое переиспользование дескрипторов для различных потоков может быть необходимым, если Ваша программа открывает много файлов. Для выходных файлов рекомендуется вызывать fclose(), поскольку это гарантирует, что перед закрытием файла будет выведено все содержимое ассоциированного с ним буфера. Системный вызов exit() закрывает все открытые в программе файлы, однако этот вызов еще и полностью завершает выполнение программы, поэтому его использование безопасно, только если Вы уверены, что сделано все, что нужно.




Начало  Назад  Вперед



Книжный магазин