Aracılığıyla paylaş


fseek, _fseeki64

Dosya işaretçisi belirtilen konuma taşır.

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

Parametreler

  • stream
    FILE yapısı işaretçisi.

  • offset
    Bayt sayısı origin.

  • origin
    Başlangıç konumu.

Dönüş Değeri

Başarılı olursa, fseek ve _fseeki64 0 değerini döndürür.Aksi takdirde, sıfır dışında bir değer döndürür.Dönüş değeri arama yeteneğine sahip olan aygıtlar üzerinde tanımlı değil.Yoksa stream bir null işaretçi veya origin izin verilen değerler aşağıda açıklanan biri değil fseek ve _fseeki64 açıklandığı gibi geçersiz bir parametre işleyicisi çağırmak Parametre Doğrulama.Yürütmenin devam etmesine izin verilirse bu işlevler errno öğesini EINVAL olarak ayarlar ve -1 döndürür.

Notlar

fseek Ve _fseeki64 hareket ile ilişkili dosya işaretçisi (varsa) çalışır stream yeni bir konuma offset baytlar origin*.* Sonraki operasyon akışta yeni konumda yer alır.Güncelleştirme için açık bir akış üzerinde okuma veya yazma sonraki operasyon olabilir.Bağımsız değişken kaynak STDIO içinde tanımlanan aşağıdaki sabitlerden birini olmalıdır.Y:

  • SEEK_CUR
    Dosya işaretçisi geçerli konumu.

  • SEEK_END
    Dosya sonu.

  • SEEK_SET
    Dosya başına.

Kullanabileceğiniz fseek ve _fseeki64 bir dosyada herhangi bir yere işaretçiyi yeniden konumlandırmak için.Fare işaretçisini dosya sonunu konumlandırılmış olabilir.fseekve _fseeki64 dosya sonu göstergesi temizler ve tüm önceki etkisini geçersiz hale getirir ungetc karşı çağırır stream.

Veri ekleme için bir dosya açıldığında, geçerli dosya konumu değil nerede sonraki yazma ortaya çıkabilecek tarafından son g/ç işlemi tarafından belirlenir.Hiçbir g/ç işlemi henüz ekleme için açık bir dosya üzerinde oluştuysa, dosya dosyanın başlangıcına konumdur.

Metin modunda açılmış olan akış için fseek ve _fseeki64 kullanımı, şaryo dönüşü – satır besleme çevirileri neden olabileceğinden sınırlı fseek ve _fseeki64 beklenmeyen sonuçlar üretmek için.Tek fseek ve _fseeki64 metin modunda açılmış olan akış üzerinde çalışacağı garanti işlemleri:

  • Kaynak değerlerden herhangi birine göre 0 uzaklığına sahip arayan.

  • Döndürülen sapma değeri dosyanın başından arayan bir çağrıya ftell kullanırken, fseek veya _ftelli64 kullanırken, _fseeki64.

Ayrıca metin modunda CTRL + Z giriş üzerinde bir dosya sonu karakteri olarak yorumlanır.Okuma/yazma için açılan dosyaları fopen ve tüm ilgili yordamlar için CTRL + Z dosyanın sonunda denetleyin ve mümkünse kaldırın.Bu birleşimi kullanılarak yapılır, çünkü fseek ve ftell veya _fseeki64 ve _ftelli64, CTRL + Z ile biter neden olabilecek bir dosya içinde taşımak için fseek veya _fseeki64 dosyanın sonuna yakın hatalı davranmasına.

CRT bir bayt sırası işareti (BOM) ile başlayan bir dosyayı açtığında, dosya işaretçisini sonra ürün reçetesi yerleştirilir (diğer bir deyişle, dosyanın gerçek içeriği başında).Mecbur fseek dosya başlangıcına kullanmak ftell ilk pozisyon almak için ve fseek onu yerine 0 getirin.

Bu işlev başka iş parçacığı yürütme sırasında kilitler ve bu nedenle iş parçacığı açısından güvenli.Kilitleme yapılmayan bir sürüm için, bkz. _fseek_nolock, _fseeki64_nolock.

Gereksinimler

Function

Gerekli başlık

fseek

<stdio.h>

_fseeki64

<stdio.h>

Ek uyumluluk bilgileri için Giriş altındaki Uyumluluk bölümüne bakın.

Örnek

// 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 );
}
  

.NET Framework Eşdeğeri

Ayrıca bkz.

Başvuru

Akış G/Ç

fopen, _wfopen

ftell, _ftelli64

_lseek, _lseeki64

geri sar