Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования
Скачать 3.41 Mb.
|
fseek----------------------------------------------------------------- Назначение Перемещает указатель файла. Синтаксис #include int fseek(FILE *stream,long int offset, int fromwhere); Прототип в stdio.h Oписание fseek устанавливает указатель файла, связанного со stream, на новую позицию, которая отстоит от места в файле, заданного в fromwhere, на коли- чество байт, указанных в offset. fromwhere должно быть одной из величин: 0, 1 или 2, которые представляют три символьные константы (определены в stdio.h): fromwhere Размещение в файле --------- ------------------ SEEK_SET (0) начало файла SEEK_CUR (1) текущее положение указателя файла SEEK_END (2) конец файла fseek теряет любой символ, возвращенный в файл с использованием ungetc. После fseek следующая операция по обмену с фай- лом может быть как вводом, так и выводом. Возвращаемое fseek возвращает 0, если указатель успешно пе- значение ремещен, и ненулевое значение при ошибке. Переносимость fseek доступна в системах UNIX и cовместима с ANSI Си. Смотри также fgetpos, fopen, fsetpos, ftell, lseek, rewind, setbuf, tell Пример #include /* возвращает число байтов в потоке */ long filesize(FILE *stream) { long curpos,length; curpos = ftell(stream); fseek(stream,OL,SEEK_END); length = ftell(stream); fseek(stream,curpos,SEEK_SET); return(length); } main() { FILE *stream; stream = fopen("MYFILE.TXT", "r"); printf("размер файла MYFILE.TXT - %ld" " байт\n"), filesize(stream); } Результат выполнения программы размер файла MYFILE.TXT - 15 байт ----------------------------------------------------------------- fsetpos----------------------------------------------------------------- Назначение Позиционирует указатель файла в потоке. Синтаксис #include int fsetpos(FILE *stream, const fpos_t *pos); Прототип в stdio.h Замечания fsetpos устанавливает указатель файла stream, в новое положение. Новое положение указателя по- лучено в результате предварительного вызова fgetpos. fsetpos сбрасывает индикатор конца файла, на который указывает stream, и отменяет результаты обработки функции ungetc для этого файла. Следующей после вызова fsetpos операцией над файлом может быть ввод или вывод. Тип fpos_t описан в stdio.h как typedef long fpos_t; Возвращаемое При успешном выполнении fsetpos возвращает 0. значение При ошибке данная функция возвращает ненулевое значение. Переносимость fsetpos cовместима с ANSI Си. Смотри также fgetpos, fseek, ftell ----------------------------------------------------------------- fstat----------------------------------------------------------------- Назначение Дает информацию об открытом файле. Синтаксис #include int fstat(int handle, struct stat *buff) Прототип в sys\stat.h Замечания fstat заполняет структуру типа stat информацией об открытом файле или каталоге. buff указывает на структуру типа stat (опреде- лена в sys\stat.h). Данная структура содержит следующие поля: st_mode Маска, содержащая информацию о режиме открытия файла st_dev Номер драйвера диска, содержащего файл, или номер обработчика, если файл на устройстве. st_rdev Совпадает с st_dev st_nlink Целая константа 1 st_size Размер открытого файла в байтах st_atime Время последней модификации файла st_mtime Совпадает с st_atime st_ctime Совпадает с st_atime stat структра содержит еще три поля, не указан- ные здесь, они содержат значения, которые не имеют смысла для MS-DOS. Маска, содержащая информацию о режиме открытия файлов, включает следующие биты. Устанавливается один из двух бит: S_IFCHR Если handle ссылается на устройство S_IFREG Если handle ссылается на обычный файл Устанавливается один или два бита: S_IWRITE Если у пользователя есть дос- туп для записи S_IREAD Если у пользователя есть дос- туп для чтения Маска также содержит биты режима доступа к фай- лу. Возвращаемое fstat возвращает 0 при успешном получении ин- значение формации об открытии, при ошибке возвращает -1 и устанавливает errno в EBADF Неверный дескриптор файла Смотри также acces, chmod, stat ----------------------------------------------------------------- |