Функция fflush

Функция

#include<stdio.h>

int fflush(FILE * stream);

записывает в файл содержимое буфера, связанного с потоком stream, если он был открыт на вывод. Функция fflush не оказывает влияния на не буферизованные потоки.

В случае успешного завершения возвращает 0. При ошибке возвращает EOF.

Пример:

#include<string.h>

#include<stdio.h>

#include<conio.h>

#include<io.h>

void flush(FILE *stream);

int main(void)

{

FILE *stream;

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

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

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

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

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

clrscr();

printf("Для сброса потока нажмите любую клавишу...\n");

getch();

/* сбросить данные в файл, без его закрытия */

flush(stream);

printf("Содержимое буферов сброшено в файл\n");

printf("Для завершения нажмите любую клавишу\n");

getch();

return 0;

}

void flush(FILE *stream)

{

int duphandle;

/* сбросить внутренние буфера файла */

fflash(stream);

/* создать второй дескриптор */

duphandle = dup(fileno(stream));

/* закрыть второй дескриптор для сброса буферов DOS */

close(duphandle);

}

Функция 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;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: