lseek

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu io.h - Index

Header-Datei

io.h

Kategorie

Eingabe-/Ausgaberoutinen

Prototyp

long lseek(int handle, long offset, int fromwhere); 
__int64 _lseeki64(int handle, __int64 offset, int fromwhere); 

Beschreibung

Verschiebt den Dateizeiger.

lseek bewegt den handle zugeordneten Dateizeiger an eine neue Position, die sich offset Bytes hinter der durch fromwhere festgelegten Dateiposition befindet. fromwhere muss einer der folgenden (in io.h definierten) symbolischen Konstanten entsprechen:

SEEK_CUR

Aktuelle Dateizeigerposition

SEEK_END

Dateiende (EOF)

SEEK_SET

Dateianfang


Rückgabewert

lseek gibt den Offset der neuen Zeigerposition ab dem Dateianfang in Bytes zurück. Bei einem Fehler gibt lseek -1L zurück, und der globalen Variablen errno wird einer der folgenden Werte zugewiesen:

EBADF

Bad file handle (Ungültiges Datei-Handle)

EINVAL

Invalid argument (Ungültiges Argument)

ESPIPE

Illegal seek on device (Ungültige Neupositionierung auf dem Gerät)


Bei Geräten, die keine Suchoperationen unterstützen (wie Terminals und Drucker), ist der Rückgabewert undefiniert.

Beispiel

#include <sys\stat.h>;
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
int main(void)
{
    int handle;
    char msg[] = "This is a test";
    char ch;
    /* Eine Datei erstellen */
    handle = open("TEST.$$$", O_CREAT | O_RDWR, S_IREAD | S_IWRITE);
    /* Daten in die Datei schreiben */
    write(handle, msg, strlen(msg));
    /* Auf Dateianfang zurücksetzen */
    lseek(handle, 0L, SEEK_SET);
    /* Zeichen aus der Datei lesen, bis EOF erreicht wird */
    do
    {
       read(handle, &ch, 1);
       printf("%c", ch);
    } while (!eof(handle));
    close(handle);
    return 0;
}


Portabilität

POSIX Win32 ANSI C ANSI C++

+

+