fseek(3) Library Functions Manual fseek(3)

fgetpos, fseek, fsetpos, ftell, rewind - repoziționează un flux

Biblioteca C standard (libc, -lc)

#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
void rewind(FILE *stream);
int fgetpos(FILE *restrict stream, fpos_t *restrict pos);
int fsetpos(FILE *stream, const fpos_t *pos);

Funcția fseek() stabilește indicatorul de poziție al fișierului pentru fluxul indicat de stream. Noua poziție, măsurată în octeți, se obține prin adăugarea de offset octeți la poziția specificată de whence. Dacă whence este stabilit la SEEK_SET, SEEK_CUR sau SEEK_END, poziția este relativă la începutul fișierului, la indicatorul poziției curente sau, respectiv, la sfârșitul fișierului. Un apel reușit la funcția fseek() șterge indicatorul de sfârșit de fișier al fluxului și anulează orice efect al funcției ungetc(3) asupra aceluiași flux.

Funcția ftell() obține valoarea curentă a indicatorului de poziție a fișierului pentru fluxul indicat de stream.

Funcția rewind() stabilește indicatorul de poziție al fișierului pentru fluxul indicat de stream la începutul fișierului. Este echivalentă cu:

(void) fseek(stream, 0L, SEEK_SET)

cu excepția faptului că indicatorul de eroare pentru flux este, de asemenea, eliminat (a se vedea clearerr(3)).

Funcțiile fgetpos() ș i fsetpos() sunt interfețe alternative echivalente cu ftell() ș i fseek() (cu whence stabilit la SEEK_SET), care stabilesc și stochează valoarea curentă a poziției fișierului în sau din obiectul la care face referire pos. Pe unele sisteme non-UNIX, un obiect fpos_t poate fi un obiect complex și aceste rutine pot fi singura modalitate de a repoziționa portabil un flux de text.

În cazul în care fluxul se referă la un fișier obișnuit și poziția fluxului rezultată depășește dimensiunea fișierului, scrierile ulterioare vor extinde fișierul cu o gaură, până la poziția de deplasare, înainte de a trimite orice date. A se vedea lseek(2) pentru detalii privind semantica de căutare a fișierelor.

Funcția rewind() nu returnează nicio valoare. La finalizarea cu succes, fgetpos(), fseek(), fsetpos() returnează 0, iar ftell() returnează poziția curentă. În caz contrar, se returnează -1, iar errno este configurată pentru a indica eroarea.

Argumentul whence la fseek() nu a fost SEEK_SET, SEEK_END sau SEEK_CUR. Sau: poziția rezultată a fișierului ar fi fost negativă.
Descriptorul de fișier care stă la baza stream nu poate fi căutat (de exemplu, se referă la o conductă, FIFO sau soclu).

Funcțiile fgetpos(), fseek(), fsetpos() și ftell() pot, de asemenea, să eșueze și să configureze errno pentru oricare dintre erorile specificate pentru rutinele fflush(3), fstat(2), lseek(2) și malloc(3).

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
fseek(), ftell(), rewind(), fgetpos(), fsetpos() Siguranța firelor MT-Safe

C11, POSIX.1-2008.

POSIX.1-2001, C89.

lseek(2), fseeko(3)

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

2 mai 2024 Pagini de manual de Linux 6.8