|
Описание функций языка Си
|
" 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
|
|
|