Die Bibliothek SysLibFileStream
Die Bibliothek [Link]
Diese Bibliothek unterstützt Funktionen, die die entsprechenden ANSI C Funktionen für
Dateioperationen nachbilden. Die Abarbeitung erfolgt synchron.
Die Funktionen:
SysLibFileStream Funktion ANSI C Funktion Datentyp Bemerkungen
SysFileStreamFOpen *fopen( char DWORD Datei mit dem Namen filename als
*filename, char *mode wird als Stream geöffnet; mögliche
); Werte für inputvariable Mode: 'w'
(write), 'r' (read), 'a' (append), '+', 'b', 't'
SysFileStreamClearerr clearerr(FILE* pFile); DINT interner Fehlerstatus von pFile wird
gelöscht; liefert immer 1
SysFileStreamFClose fclose( FILE *pFile ); DINT alle offenen Streams werden
geschlossen (außer stdin, stdout,
stderr). Liefert EOF im Fehlerfall,
sonst 0.
SysFileStreamFEOF *feof( FILE* pFile ); DINT liefert !=0, falls für pFile das Dateiende
erreicht ist
SysFileStreamFError ferror( FILE* pFile ); DINT liefert !=0, falls für pFile ein Fehler
aufgetreten ist
SysFileStreamFFlush fflush( FILE *pFile ); DINT Ausgeben von noch intern gepufferten
Zeichen
SysFileStreamRemove remove( char* BOOL Datei wird gelöscht; liefert 1 wenn OK,
filename); 0 im Fehlerfall
SysFileStreamRename rename( char* BOOL Umbenennen einer Datei; liefert 1
filename); wenn OK, 0 im Fehlerfall
SysFileStreamRewind rewind( FILE* pFile); DINT setzt die Dateiposition auf den Anfang
und löscht internen Fehlerstatus;
liefert immer 1
SysFileStreamFGetC fgetc( FILE *pFile ); DINT liefert das nächste Zeichen aus dem
Strom (0--255),
SYSFILESTREAM_EOF bei Fehler
SysFileStreamFGetPos *fgetpos( FILE* pFile, DINT speichert die aktuelle Dateiposition
fpos_t * ptr ); von pFile nach ptr; fpos_t ist hier als
"unsignedlong" (32 bits) definiert
SysFileStreamFSetPos fsetpos( FILE* pFile, DINT setzt die Dateiposition von Stream
fpos_t * ptr ); pFile entsprechend ptr; fpos_t ist hier
als "unsignedlong" (32 bits) definiert;
pFPos:DWORD; (* pointer !!*)
SysFileStreamFGetS * fgets( char * str, int POINTE liest maximal n--1 Zeichen nach s
n, FILE * pFile ); R TO (Abschluß automatisch mit 0);
STRING Abbruch bei '\n', das '\n' wird nach s
übernommen;
Rückgabewert: s bzw. 0 (bei
Dateiende oder Fehler)
SysFileStreamFPrintf_Int fprintf( FILE* pFile, DINT formatierte Ausgabe in den Strom
char* szFormat, pFile;
intnArg); Einschränkung gegenüber C: nur 1
Argument des Typs INT/DINT etc.
kann gedruckt werden
szFormat sollte sein: z.B. '%d'
© 3S- Smart Software Solutions GmbH / 05.01.2005 / CoDeSys V2.3
1
Die Bibliothek [Link]
SysLibFileStream Funktion ANSI C Funktion Datentyp Bemerkungen
SysFileStreamFPrintf_Real fprintf( FILE* pFile, DINT formatierte Ausgabe in den Strom
char* szFormat, float pFile;
fArg); Einschränkung gegenüber C: nur 1
Argument des Typs REAL etc. kann
gedruckt werden
szFormat sollte sein: z.B. '%f'
SysFileStreamFPrintf_String fprintf( FILE* pFile, DINT formatierte Ausgabe in den Strom
char* szFormat, char pFile;
*pcArg); Einschränkung gegenüber C: nur 1
Argument des Typs STRING etc. kann
gedruckt werden
szFormat sollte sein: z.B. '%s'
SysFileStreamFPutC fputc( int c, FILE DINT Schreiben des Zeichens
*pFile ); (unsignedchar)c in den Stream pFile
Rückgabewert: c (nach DINT
konvertiert) oder
SYSFILESTREAM_EOF im Fehlerfall
SysFileStreamFPutS fputs( char* str, FILE * DINT Schreiben der Strings s in den Stream
pFile ); pFile
Rückgabewert: str (Zeiger auf String)
oder SYSFILESTREAM_EOF im
Fehlerfall
SysFileStreamFRead fread( void* ptr, DWORD nobj Objekte der Größe size werden
size_t size, size_t von pFile nach ptr gelesen
nobj, FILE* pFile ); Rückgabewert: Anzahl der tatsächlich
gelesenen Objekte
SysFileStreamFWrite fwrite( void* ptr, DWORD nobj Objekte der Größe size werden
size_t size, size_t von ptr nach pFile geschrieben
nobj, FILE* pFile ); Rückgabewert: Anzahl der tatsächlich
gelesenen Objekte
SysFileStreamFScanf_Int fscanf( FILE* pFile, DINT formatierte Eingabe aus Stream pFile;
char* szFormat, int * Einschränkung gegenüber C: nur 1
pnArg); DINT Argument kann eingelesen
werden;
szFormat sollte sein: z.B. '%d'
SysFileStreamFScanf_String fscanf( FILE* pFile, DINT formatierte Eingabe aus Stream pFile;
char* szFormat, char Einschränkung gegenüber C: nur 1
*pcArg); STRING Argument kann eingelesen
werden;
szFormat sollte sein: z.B. '%s'
SysFileStreamFScanf_Real fscanf( FILE* pFile, DINT formatierte Eingabe aus Stream pFile;
char* szFormat, float* Einschränkung gegenüber C: nur 1
pfArg); REAL Argument kann eingelesen
werden; szFormat sollte sein: z.B. '%f'
SysFileStreamFSeek fseek( FILE* pFile, DINT setzt die Dateiposition auf offset Bytes
long offset, int origin); relativ zu origin; Werte für origin:
SEEK_SET=Dateianfang,
SEEK_CUR=aktuelle Position;
SEEK_END=Dateiende; 0=OK
SysFileStreamFTell ftell( FILE* pFile); DINT liefert die aktuelle Dateiposition (vom
Anfang) in Bytes (-1 bei Fehler)
2 © 3S- Smart Software Solutions GmbH / 05.01.2005 / CoDeSys V2.3