Page de démarrage > dev > api > name > gb_stream_desc 
 en de es it nl pl pt pt_BR mk sq ca hu cs tr ar fa id vi ko ja ru zh zh_TW eo
Précédent  Suivant  Éditer  Renommer  Annuler  Rafraîchir  Rechercher  Administration  
Documentation
Historique
 
GB_STREAM_DESC
struct GB_STREAM;

typedef   struct {     int (*open)(struct GB_STREAM *stream, const char *path, int mode, void *data);     int (*close)(struct GB_STREAM *stream);     int (*read)(struct GB_STREAM *stream, char *buffer, long len);     int (*write)(struct GB_STREAM *stream, char *buffer, long len);     int (*seek)(struct GB_STREAM *stream, long long pos, int whence);     int (*tell)(struct GB_STREAM *stream, long long *pos);     int (*flush)(struct GB_STREAM *stream);     int (*eof)(struct GB_STREAM *stream);     int (*lof)(struct GB_STREAM *stream, long long *len);     int (*handle)(struct GB_STREAM *stream);     } GB_STREAM_DESC;

Ceci décrit une table de pointeurs de fonctions qui doit pointer vers les fonctions d’implémentation d’un flux.

Chaque flux possède un pointeur vers une telle structure. Voir GB_STREAM pour plus de détails.

Fonction Ce qui doit être fait Ce qui doit être retourné
open Ouvre le flux.

Cette fonction n’est jamais appelée directement par l’interpréteur, vous devez ouvrir le fichier vous-même, en instanciant l’objet Gambas Stream, et en renseignant la structure GB_STREAM de manière appropriée.

TRUE signifie le flux ne peut pas être ouvert, et FALSE signifie tout est OK.
close Ferme le flux. FALSE.
read Lit len octets depuis le flux, et remplit le tampon avec eux. TRUE signale une erreur, et FALSE signifie tout est OK.

Le code errno est employé par l’interpréteur pour choisir le message d’ erreur.

write Ecrit les len octets situés dans le tampon _ vers le flux. TRUE signale une erreur, et FALSE signifie tout est OK.

Le code errno est employé par l’interpréteur pour choisir le message d’ erreur.

seek Saut à l’intérieur d’un flux.
  • _pos est la position dans le flux.
  • whence est l’une des constantes suivante :
    • SEEK_SET, indique que pos est une position absolue.
    • SEEK_CUR, indique pos est un décalage depuis la position courante.
    • SEEK_END, indique pos est un décalage depuis la fin du flux.
TRUE si le saut est impossible, FALSE signifie tout est OK.
tell Retourne dans pos la position courante à l’intérieur du flux. TRUE si le saut est impossible, FALSE signifie tout est OK.
flush Vide le flux. TRUE s’il y a eu une erreur, FALSE signifie tout est OK.

Si le vidage n’a pas de sens pour votre flux, alors vous devez retourner FALSE.

eof Test la fin de flux. TRUE si la fin de flux est atteinte, FALSE sinon.
lof Retourne dans len la longueur du flux.

Si ça n’a pas de sens pour votre flux, et si la fonction handle retourne un descripteur de fichier du système, vous pouvez vous faire retourner par l’interpréteur le nombre maximum d’octets qui peut être lu sur le flux , en mettant 0 dans len.

FALSE.
handle Retourne le descripteur de fichier sous-jacent du système. Le descripteur de fichier sous-jacent du système.

Voir aussi

api/cat/stream