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

#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

results matching ""

    No results matching ""