Sdílet prostřednictvím


fseek, _fseeki64

Přesune ukazatel na soubor do zadaného umístění.

int fseek( 
   FILE *stream,
   long offset,
   int origin 
);
int _fseeki64( 
   FILE *stream,
   __int64 offset,
   int origin 
);

Parametry

  • stream
    Ukazatel na strukturu FILE.

  • offset
    Počet bajtů od origin.

  • origin
    Počáteční pozice.

Vrácená hodnota

Pokud je úspěšná, fseek a _fseeki64 , vrátí hodnotu 0.V opačném případě vrací nenulovou hodnotu.Na neschopnosti usilující o zařízení vrácená hodnota je undefined.Pokud stream je ukazatel s hodnotou null, nebo pokud origin není jedním z povolených hodnot, které jsou popsány níže, fseek a _fseeki64 vyvolat obslužnou rutinu neplatný parametr, jak je popsáno v Ověření parametru.Pokud smí provádění pokračovat, tyto funkce nastaví errno na EINVAL a vrátí -1.

Poznámky

fseek a _fseeki64 funkce přesune ukazatel souboru (pokud existuje) spojené s stream do nového umístění, které je offset bajtů od origin*.* Další operace v datovém proudu se uskuteční na novém místě.U otevřené pro aktualizaci datového proudu lze další operace čtení nebo zápisu.Původ argument musí být jeden z následujících konstant, definované v STDIO.H:

  • SEEK_CUR
    Aktuální pozice ukazatele souboru.

  • SEEK_END
    Konec souboru.

  • SEEK_SET
    Začátek souboru.

Můžete použít fseek a _fseeki64 Chcete-li přemístit ukazatel myši kdekoli v souboru.Ukazatel myši lze také umístit za koncem souboru.fseeka _fseeki64 vymaže indikátor konce souboru a Neguje působení jakékoli předchozí ungetc volá proti stream.

Pokud je soubor otevřen pro přidávání dat, aktuální pozice v souboru je určen poslední vstupně-výstupní operace, nikoli kde by se vyskytnout další zápis.Pokud žádné vstupně-výstupní operace došlo ještě na soubor otevřen pro přidávání, umístění souboru je na začátek souboru.

U datových proudů otevřených v textovém režimu fseek a _fseeki64 mají omezené použití, protože může způsobit carriage return – linefeed překlady fseek a _fseeki64 k neočekávaným výsledkům.Pouze fseek a _fseeki64 jsou operace zaručeno, že práce na datových proudů otevřených v textovém režimu:

  • Hledání s posunem 0 vzhledem k původu hodnot.

  • Hledání od začátku souboru hodnotu offsetu vrácená z volání ftell při použití fseek nebo _ftelli64 při použití _fseeki64.

Také v textovém režimu, je interpretován CTRL + Z jako znak konce souboru na vstupu.V souborech otevřen pro čtení nebo zápis fopen a všechny související rutin kontrolu CTRL + Z na konci souboru a pokud možno jej odebrat.Důvodem je že pomocí kombinace fseek a ftell nebo _fseeki64 a _ftelli64, chcete-li přesunout do souboru, který může způsobit končí CTRL + Z fseek nebo _fseeki64 na konci souboru fungovat správně.

Pokud CRT otevře soubor, který začíná s značku pořadí bytů (BOM), ukazatel souboru je umístěn za Kusovníku (to znamená na začátku skutečného obsahu souboru).Pokud máte k fseek na začátku souboru, použijte ftell k získání počáteční pozice a fseek k němu, nikoli na pozici 0.

Tato funkce zamkne ostatní vlákna během provádění a proto je vláknově bezpečné.Nezamykací verzi naleznete v _fseek_nolock, _fseeki64_nolock.

Požadavky

Funkce

Požadované záhlaví

fseek

<stdio.h>

_fseeki64

<stdio.h>

Další informace o kompatibilitě naleznete v úvodu tématu Kompatibilita.

Příklad

// crt_fseek.c
// This program opens the file FSEEK.OUT and
// moves the pointer to the file's beginning.
 
#include <stdio.h>

int main( void )
{
   FILE *stream;
   char line[81];
   int  result;

   if ( fopen_s( &stream, "fseek.out", "w+" ) != 0 )
   {
      printf( "The file fseek.out was not opened\n" );
      return -1;
   }
   fprintf( stream, "The fseek begins here: "
                    "This is the file 'fseek.out'.\n" );
   result = fseek( stream, 23L, SEEK_SET);
   if( result )
      perror( "Fseek failed" );
   else
   {
      printf( "File pointer is set to middle of first line.\n" );
      fgets( line, 80, stream );
      printf( "%s", line );
    }
   fclose( stream );
}
  

Ekvivalent v rozhraní .NET Framework

Viz také

Referenční dokumentace

I/O proudu

fopen, _wfopen

ftell, _ftelli64

_lseek, _lseeki64

rewind