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
    İşaretçi FILE yapısı.

  • offset
    Bayt sayısı kadar origin.

  • origin
    Başlangıç konumu.

Dönüş Değeri

Başarılı olursa, fseek ve _fseeki64 0 döndürür.Aksi halde, sıfır olmayan bir değer döndürür.Dönüş değeri arayan incapable aygıtlar üzerinde tanımlı değil.stream Bir null işaretçi veya origin , aşağıda açıklanan izin verilen değerlerden biri değil fseek ve _fseeki64 açıklandığı gibi geçersiz bir parametre işleyicisi çağırmak Parametre doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevler kümesi errno için EINVAL ve -1 döndürür.

Notlar

fseek Ve _fseeki64 gider (varsa) dosya işaretçisi ile ilişkili işlevleri stream olan yeni bir konuma offset baytlar origin*.* Yeni konumda sonraki akış işlemi gerçekleşir.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 biri olmalıdır.Y:

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

  • SEEK_END
    Dosya sonu.

  • SEEK_SET
    Dosya başlangıcı.

Kullanabileceğiniz fseek ve _fseeki64 işaretçiyi bir dosyada herhangi bir yere yeniden konumlandırmak için.İşaretçiyi dosya sonunu aşan konumlandırılmış olabilir.fseekve _fseeki64dosya sonu göstergesi temizler ve herhangi bir önceki etkisini olumsuzlar ungetc karşı çağrı stream.

Veri eklemek için bir dosya açıldığında, geçerli dosya konumu değil burada sonraki yazma ortaya çıkabilecek tarafından son g/Ç işlemi tarafından belirlenir.Ekleme için açılmış bir dosyada hiçbir g/Ç işlemi henüz oluştu, dosya konumu dosya başlangıcıdır.

Metin modunda açılmış olan akış için fseek ve _fseeki64başı return–linefeed çevirileri neden olabileceğinden, kullanım sınırlı fseek ve _fseeki64beklenmeyen sonuçlar için.Tek fseek ve _fseeki64metin modunda açılmış olan akış üzerinde çalışacağı garanti işlemleri:

  • Uzaklığındaki 0 başlangıç değerleri birine göre arama.

  • Yapılan çağrıdan döndürülen dosya ile uzaklık değeri başından arayan ftell kullanırken fseekveya _ftelli64kullanırken_fseeki64.

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

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

Bu işlev dışında başka iş yürütülürken kilitler ve bu nedenle thread-safe.Kilitleme olmayan bir sürümü için bkz: _fseek_nolock, _fseeki64_nolock.

Gereksinimler

İşlev

Gerekli başlık

fseek

<stdio.h>

_fseeki64

<stdio.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Ö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

G/ç

fopen, _wfopen

ftell, _ftelli64

_lseek, _lseeki64

rewind