Aracılığıyla paylaş


_lseek, _lseeki64

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

long _lseek( 
   int fd, 
   long offset, 
   int origin  
); 
__int64 _lseeki64( 
   int fd, 
   __int64 offset, 
   int origin  
);

Parametreler

  • fd
    Açık olan bir dosyaya başvuran dosya tanımlayıcısı.

  • mahsup hesabı
    Bayt sayısı kadar kaynak.

  • menşei
    Başlangıç konumu.

Dönüş Değeri

_lseekUzaklık, dosyanın yeni konumunu başından bayt cinsinden döndürür._lseeki64Uzaklık 64-bit bir tamsayı döndürür.Bir hatayı göstermek için –1L işlevini verir.Bozuk dosya tanımlayıcısı veya değeri gibi geçersiz bir parametre geçirildi, kaynak geçersiz ya da belirtilen konum uzaklık olan dosya başlamadan önce geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre Doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevler kümesi errno için EBADF ve M-1 döndürür.Dönüş değeri (Terminaller ve yazıcılar gibi) arayan incapable aygıtları üzerinde tanımlı değil.

Bunlar ve diğer hata kodları hakkında daha fazla bilgi için bkz: _doserrno, errno, _sys_errlist ve _sys_nerr.

Notlar

_lseek İşlevi ile ilişkili dosya işaretçisi taşır fd olan yeni bir konuma uzaklık baytlar kaynak.Sonraki operasyon dosya üzerinde yeni konumda oluşur.Başlangıcı bağımsız değişkeni Stdio.h içinde tanımlanan aşağıdaki sabitlerden biri olmalıdır.

  • SEEK_SET
    Dosya başına.

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

  • SEEK_END
    Dosya sonu.

Kullanabileceğiniz _lseek işaretçiyi bir dosya ya da Dosya sonunun ötesinde herhangi bir yerde yeniden konumlandırmak için.

Gereksinimler

Yordamı

Gerekli başlık

_lseek

<io.h>

_lseeki64

<io.h>

Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.

Kitaplıkları

Tüm sürümleri c çalışma zamanı kitaplıkları.

Örnek

// crt_lseek.c
/* This program first opens a file named lseek.txt.
 * It then uses _lseek to find the beginning of the file,
 * to find the current position in the file, and to find
 * the end of the file.
 */

#include <io.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <share.h>

int main( void )
{
   int fh;
   long pos;               /* Position of file pointer */
   char buffer[10];

   _sopen_s( &fh, "crt_lseek.c_input", _O_RDONLY, _SH_DENYNO, 0 );

   /* Seek the beginning of the file: */
   pos = _lseek( fh, 0L, SEEK_SET );
   if( pos == -1L )
      perror( "_lseek to beginning failed" );
   else
      printf( "Position for beginning of file seek = %ld\n", pos );

   /* Move file pointer a little */
    _read( fh, buffer, 10 );

   /* Find current position: */
   pos = _lseek( fh, 0L, SEEK_CUR );
   if( pos == -1L )
      perror( "_lseek to current position failed" );
   else
      printf( "Position for current position seek = %ld\n", pos );

   /* Set the end of the file: */
   pos = _lseek( fh, 0L, SEEK_END );
   if( pos == -1L )
      perror( "_lseek to end failed" );
   else
      printf( "Position for end of file seek = %ld\n", pos );

   _close( fh );
}

Giriş: crt_lseek.c_input

Line one.
Line two.
Line three.
Line four.
Line five.

Çıktı

Position for beginning of file seek = 0
Position for current position seek = 10
Position for end of file seek = 57

Ayrıca bkz.

Başvuru

Düşük Düzey G/Ç

fseek, _fseeki64

_tell, _telli64