Търсене в файлове и откъслечни файлове
#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
Was this helpful?