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