Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Weist einer vorhandenen Datei einen Visual FoxPro-Kanal zu.
FCHAN _FOpen(char FAR *filename, int mode)
char FAR *filename; /* Name of existing file */
int mode; /* Mode option. */
Hinweise
Die folgenden Modusoptionen sind verfügbar: FO_READONLY, FO_WRITEONLY und FO_READWRITE. _FOpen( ) öffnet eine Datei mit exklusivem Zugriff. _FOpen( ) gibt den Dateikanal zurück, wenn die Datei geöffnet wurde. Konnte die Datei nicht geöffnet werden, wird -1 zurückgegeben.
Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.
Beispiel
Im folgenden Beispiel wird eine Testdatei erstellt. Anschließend wird die Datei im FO_READONLY-Modus geöffnet, und es wird versucht, in die Datei zu schreiben. Daraufhin gibt _FError( ) den Wert 5 für Zugriff verweigert zurück. Im nächsten Schritt wird die Datei im FO_WRITEONLY-Modus geöffnet, und es wird versucht, aus der Datei zu lesen. _FError( ) gibt erneut den Wert 5 zurück.
Visual FoxPro-Code
SET LIBRARY TO FOPEN
C-Code
#include <pro_ext.h>
void putLong(long n)
{
Value val;
val.ev_type = 'I';
val.ev_long = n;
val.ev_width = 10;
_PutValue(&val);
}
#define BUFFSIZE 256
static char lineBuffer[BUFFSIZE];
FAR Example(ParamBlk FAR *parm)
{
FCHAN fchan;
fchan = _FCreate("temp.tmp", FC_NORMAL);
_FCHSize(fchan, 8192);
_FClose(fchan);
fchan = _FOpen("temp.tmp", FO_READONLY);
_FPuts(fchan, "Hello, world");
_PutStr("\nAttempt to _FPuts() to file _FOpen()d FO_READONLY");
_PutStr("\n_FError() ="); putLong(_FError());
_FClose(fchan);
fchan = _FOpen("temp.tmp", FO_WRITEONLY);
_FGets(fchan, lineBuffer, BUFFSIZE);
_PutStr("\nAttempt to _FGets() from file _FOpen()d FO_WRITEONLY");
_PutStr("\n_FError() ="); putLong(_FError());
_FClose(fchan);
}
FoxInfo myFoxInfo[] = {
{"FOPEN", (FPFI) Example, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_FClose( ), API-Bibliotheksroutine | _FCreate( ), API-Bibliotheksroutine | _FError( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API