Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" F "

fabs,fabsf,fabsl 

fclose 

fcloseall 

fdim,fdimf,fdiml 

fdopen 

fegetround 

feof 

ferror 

fesetround 

fgetc 

fgets 

fileno 

finite,finitef,finitel 

fflush 

floor,floorf,floorl 

fma,fmaf,fmal 

fmax,fmaxf,fmaxl 

fmin,fminf,fminl 

fmod,fmodf,fmodl 

fopen 

fpclassify 

fputc 

fputs 

freopen 

frexp,frexpf,frexpl 

fseek 

fseeko 

ftell 

ftello 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

ftello – опрос текущей позиции в потоке данных.

Синтаксис:

#include < stdio.h >
off_t ftell (FILE *stream);

Аргументы:

stream – указатель на управляющую таблицу потока данных.

Возвращаемое значение:

Позиция в потоке данных, если работа функции завершена удачно.
Если при определении позиции произошла ошибка, то возвращается -1.

Описание:

Функция ftello определяет текущую позицию в потоке данных, на который указывает аргумент stream.

Для двоичных потоков данных позиция соответствует количеству байтов от начала файла. Для текстовых потоков данных получаемое число может не совпадать с количеством байтов от начала файла и должно использоваться только функцией fseeko() для установки потока данных в ту же позицию.

По сути, функция ftello аналогична функции ftell и отличается только типом возвращаемого значения. Так в функции ftell возвращаемое значение имеет тип long int, а в функции ftello – имеет тип off_t. Однако тип off_t ничто иное, как переопределения типа long int.

Пример:

В примере открывается файл для чтения, содержащий строку «тест чтения». Определяется текущая позиция в файле сразу после его открытия, а затем после чтения одного символа. Результаты определения позиции выводятся на экран.


#include < stdio.h >  //Для printf, fopen, fclose, ftell

int main (void)
{  
   // Переменная, в которую будет сохранен указатель
   // на управляющую таблицу открываемого потока данных
   FILE *mf;
   // Переменная, в которую будет сохраняться
   // текущая позиция в файле
   off_t  pos;
   // Переменная, в которую будет помещен считанный 
   // из файла байт
   int sym;

   printf (“Открытие файла: ”);
   // Открытие файла
   mf=fopen (“myfile/test.txt”,”r”);
   // Проверка открытия файла
   if (mf == NULL) printf (“ошибка\n”);
   else printf (“выполнено\n”);
 
   printf (“Определение позиции: ”);
   // Определение текущей позиции в файле
   pos = ftello (mf); 
   if (pos == -1) printf (“ошибка\n”);
   else printf (“%ld\n”,pos);

   printf (“Чтение из файла символа: ”);
   // Чтение одного байта из файла
   sym = getc (mf);
   if (sym == EOF) printf (“ошибка\n”);
   else printf (“%с\n”, sym);

   printf (“Определение позиции: ”);
   // Определение текущей позиции в файле
   pos = ftello (mf); 
   if (pos == -1) printf (“ошибка\n”);
   else printf (“%ld\n”,pos);

   // Закрытие файла
   printf (“Закрытие файла: ”);
   if ( fclose (mf) = EOF) printf (“ошибка\n”);
   else printf (“выполнено\n”);

   return 0;
} 

Результат:

Вывод на консоль:

Открытие файла: выполнено
Определение позиции: 0
Чтение из файла символа: т
Определение позиции: 1
Закрытие файла: выполнено



Смотри так же:

fseek
fgetpos
fseeko
fsetpos
ftell
ftello
rewind


Яндекс.Метрика

Рейтинг@Mail.ru