fseek установява позицията във файла, от която се записва или чете.
Указател на файла върнат от fopen.
Позиция във файла.
Определя позицията спрямо която ще бъде направено отместването.
| SEEK_SET | Спрямо началото на файла |
| SEEK_CUR | Спрямо текущата позиция във файла |
| SEEK_END | Спрямо края на файла |
0 при успешно изпълнение
-1 при грешка
| от: adviser at cpp-examples dot com | Свали кода във файл |
#include <stdio.h> int main () { FILE * pFile; pFile = fopen ( "test.txt" , "w" ); fputs ( "Това е тест" , pFile ); fseek ( pFile , 11 , SEEK_SET ); fputs ( "!!!" , pFile ); fclose ( pFile ); return 0; }
| от: adviser at cpp-examples dot com | Свали кода във файл |
#include <stdio.h> int main () { FILE * pFile; pFile = fopen ( "test.txt" , "w" ); fseek ( pFile , 2000000 , SEEK_END ); //създава 2Mb-тов файла fclose ( pFile ); return 0; }
| от: adviser at cpp-examples dot com | Свали кода във файл |
/* Записва буквите от англииската азбука във фаил. После прочита две от тях.*/ #include <stdio.h> int main() { int ch; FILE *fp; if ((fp=fopen("alph.txt", "w+"))==NULL) // Създава файла { printf("Грешка при отварянето на файла."); return 1; } for (ch=65; ch<=90; ch++) { putc(ch, fp); // Пише буквите във файла } fseek(fp, 8L, SEEK_SET); // Прескача на 8-мия символа, ch=getc(fp); printf("Първия символ е: %c\n",ch); fseek(fp, 16L, SEEK_SET); // Прескача на 16-тия символ, ch=getc(fp); printf("Втория символ е: %c\n",ch ); fclose(fp); return 0; }
| от: adviser at cpp-examples dot com | Свали кода във файл |
/*Програмата отпечатва съдържанието на файла обърнато.*/ #include <stdio.h> #include <stdlib.h> int main() { int inChar; FILE *fp; if ((fp = fopen("ALPH.TXT", "r"))==NULL) { printf("Грешка при отваряне на файла!"); exit(1); } fseek(fp, -1L, SEEK_END);// Преместваме се върху последния байт int ctr = 0; while(ctr<26) { inChar = getc(fp); putchar(inChar); fseek(fp, -2L, SEEK_CUR); ctr++; } fclose(fp); return 0; }
getc, fgetc, putc, fputc и т.н. са функции които осигуряват последователен достъп до всеки символ от файла. За да се достигне до даден символ трябва да се премине през всички предишни символи. Това неудобство може лесно да бъде избегнато с употребата на fseek.
fseek може да се използва за увеличаване размера на файла. Това може да бъде направено като се посочи позиция след края на файла.
fopen - отваря файл
fread - чете от файл
fwrite - пише във файл
getc - прочита символ от файл
putc - пише символ в поток
fgetc - прочита символ от поток
fputc - печата символ