Your Browser is not longer supported
Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...
{{viewport.spaceProperty.prod}}
flocate - ISAM-Datei explizit positionieren (Satz-E/A)
&pagelevel(4)&pagelevel
Definition | #include <stdio.h> int flocate(FILE *dz, void *key, size_t keylen, int option); flocate dient zum expliziten Positionieren einer ISAM-Datei mit Satz-E/A. flocate ändert die aktuelle Position des Lese-/Schreibzeigers der Datei mit Dateizeiger dz entsprechend den Angaben: Schlüsselwert key, Schlüssellänge keylen und Option option (_KEY_FIRST, _KEY_LAST, _KEY_EQ, _KEY_GE).
|
Parameter | FILE *dz Dateizeiger einer ISAM-Datei, die im Modus "type=record,forg=key" eröffnet wurde (vgl. fopen /open64 , freopen /freopen64 ). void *key Zeiger auf einen Bereich, der den Schlüsselwert enthält. size_t keylen Länge des Schlüsselwertes. Der Wert muss ungleich Null sein. Ist keylen kleiner als die Schlüssellänge der Datei, füllt flocate den Schlüsselwert intern bis auf die Schlüssellänge der Datei mit binären Nullen auf und nimmt diesen generierten Schlüssel als Positioniergrundlage. Ist keylen größer als die Schlüssellänge der Datei, schneidet flocate den Schlüsselwert intern von rechts bis auf die Schlüssellänge der Datei ab und nimmt diesen verkürzten Schlüssel als Positioniergrundlage. int option Dieser Parameter kann folgende in <stdio.h> definierte Werte enthalten: _KEY_FIRST | Positioniert auf den Dateianfang. Die Parameter key und keylen werden ignoriert.. Das Positionieren ist auch in leeren Dateien erfolgreich. | _KEY_LAST | Positioniert auf das Dateiende. Die Parameter key und keylen werden ignoriert. Das Positionieren ist auch in leeren Dateien erfolgreich. | _KEY_EQ | Positioniert auf den ersten Satz mit dem angegebenen Schlüssel key. | _KEY_GE | Positioniert auf den ersten Satz mit dem Schlüsselwert größer oder gleich dem angegebenen Schlüssel key. |
|
Returnwert | 0 | wenn der Satz mit dem angegebenen Schlüssel exisitiert. |
| > 0 | wenn der Satz nicht existiert. |
| EOF | wenn ein Fehler aufgetreten ist. |
Hinweise | Wenn der Aufruf fehlerfrei war (Returnwerte 0 bzw. > 0), wird das EOF-Flag der Datei zurückgesetzt. Ist der angegebene Schlüsselwert nicht in der Datei vorhanden (Returnwert > 0), bleibt die aktuelle Position des Lese-/Schreibzeigers unverändert. Einzige Ausnahme: Wenn die Datei zum Zeitpunkt des flocate -Aufrufs auf den zweiten oder höheren Schlüssel einer Gruppe von Sätzen mit gleichen Schlüsseln positioniert ist, positioniert flocate die Datei auf den ersten Satz nach dieser Gruppe. In ISAM-Dateien mit Schlüsselverdoppelung kann mit flocate nicht auf den zweiten oder höheren Satz einer Gruppe mit gleichen Schlüsseln positioniert werden. Dies lässt sich nur durch sequenzielles Lesen bzw. Löschen erreichen. Mit flocate kann nur auf den ersten Satz oder hinter den letzten Satz einer solchen Gruppe positioniert werden. |
Siehe auch | fdelrec, fgetpos, fgetpos64, fsetpos, fsetpos64, fopen, open64, freopen, freopen64 |