Търсене в файлове и откъслечни файлове

#include<stdio.h>
FILE *fopen(const char *pathname, const char *mode);
size_t fread(void *ptr, size_t size, size_t nmemb, FOLE *stream);
int fseek(FILE *stream. long offset, int whence);
int fclose(FILE *stream);
  • Поведението на fseek() зависи от аргумента: SEEK_CUR, SEEK_END или SEEK_SET.

  • Методът връща новата позиция на файла при успех.

  • При грешка в резултат се връща -1, а информация за грешката се записва във errno.

  • Търсене след края на файла и след това писане в него причинява дупки (holes) запълнени с нули.

  • Файлове с дупки се наричат откъслечни файлове (sparse files).

  • Дупките не заемат физически дисково пространство.

  • du = оценка на използваното дисково пространство от файла.

АргументПояснение

SEEK_CUR

Взима се стойността на текущата файлова позиция (fd) плюс стойността POS, която може да бъде отрицателна, нулева или положителна. POS от нула връща стойността на текущата файлова позиция.

SEEK_END

Стойността на текущата файлова позиция (fd) става равна на дължината на файла плюс стойността POS, която може да бъде отрицателна, нулева или положителна. POS от нула задава изместване в края на файла.

SEEK_SET

Стойността на текущата файлова позиция (fd) става равна на стойността POS. POS от нула задава изместване в началото на файла.

Повече информация: Sparse Files

Last updated