Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л8.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
275.46 Кб
Скачать

Функция fgetpos

Функция

#include<stdio.h>

int fgetpos(FILE * stream, fpos_t *pos);

сохраняет позицию указателя файла, связанного с потоком stream, в месте, указываемом pos.

Тип fpos_t описывается следующим образом:

typedef long fpos_t;

При успешном завершении fgetpos возвращает 0. При ошибке возвращает ненулевое значение и устанавливает errno в EBADF или EINVAL.

Пример:

#include<string.h>

#include<stdio.h>

int main(void)

{

FILE *stream;

char string[] = "Тестовый пример";

fpos_t filepos;

/* создать файл для его изменения */

stream = fopen("DUMMY.FIL","w+");

/* записать в файл данные */

fwrite(string,strlen(string),1,stream);

/* сообщить положение указателя */

fgetpos(stream,&filepos);

printf("Указатель находится в %ld позиции\n");

fclose(stream);

return 0;

}

Функция fgets

Функция

#include<stdio.h>

char * fgets(char s, int n, FILE *stream);

считывает из потока stream строку символов и помещает ее в s. Ввод завершается после ввода n-1 символа или при вводе символа перехода на следующую строку, смотря что произойдет раньше. В отличие от gets, fgets прекращает ввод строки при получении символа перехода на следующую строку.

Нулевой байт добавляется в конец строки для индикации ее конца.

При успешном завершении возвращает указатель на s, при ошибке или конце файла возвращает NULL.

Пример:

#include<string.h>

#include<stdio.h>

int main(void)

{

FILE *stream;

char string[] = "Тестовый пример";

char msg[20];

/* создать файл для его изменения */

stream = fopen("DUMMY.FIL","w+");

/* записать в файл данные */

fwrite(string,strlen(string),1,stream);

/* перейти в начало файла */

fseek(stream,0,SEEK_SET);

/* ввести строку из файла */

fgets(msg,strlen(string)+1,stream);

/* напечатать строку */

printf("%s",msg);

fclose(stream);

return 0;

}

Функция filelength

Функция

#include<io.h>

long filelength(int handle);

возвращает длину в байтах файла, соответствующего дескриптору handle.

При успешном завершении функция filelength возвращает значение типа long- длину файла в байтах. При ошибке функция возвращает значение -1L, и глобальной переменной errno присваивается: EBADF - Неверный номер файла.

Пример:

#include<stdio.h>

#include<io.h>

#include<fcntl.h>

#include<sys\stat.h>

#include<string.h>

int main(void)

{

int handle;

char buf[11] = "0123456789";

/* создать файл из 10 байт */

handle = open("DUMMY.FIL",O_RDWR|O_CREAT|O_TRUNC,S_IREAD|S_IWRITE);

write(handle,buf,strlen(buf));

/* напечатать размер файла */

printf("Размер файла в байтах : %ld\n",filelength(handle));

/* закрыть файл */

close(handle);

return 0;

}

Функция fileno

Функция

#include<stdio.h>

int fileno(FILE * stream);

представляет собой макрокоманду, которая возвращает логический номер файла для заданного потока stream. Если поток stream имеет более одного номера, функция fileno возвращает номер, назначенный данному потоку при первом открытии.

Функция fileno возвращает целое число, обозначающее значение дескриптор файла, соответствующий потоку stream.

Пример:

#include<stdio.h>

int main(void)

{

FILE *stream;

int handle;

/* создать файл */

stream = fopen("DUMMY.FIL","w");

/* получить дескриптор файла */

handle = fileno(stream);

/* напечатать его */

printf("Дескриптор файла = %d\n",handle);

/* закрыть файл */

fclose(stream);

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]