La declaración de esta clase está en el fichero fstream.
Esta clase proporciona acceso a funciones de filebuf inaccesibles a través de ios::bp tanto para fstreambase como para sus clases derivadas.
La una función miembro de filebuf no en un miembro virtual de la clase base filebuf (streambuf), ésta no será accesible. Por ejemplo: attach, open y close no lo son.
Los constructores de fstreambase inicializan el dato ios::bp para que apunte al filebuf.
fstreambase(); fstreambase(const char *name, int mode, int = filebuf::openprot); fstreambase(int fd); fstreambase(int fd, char *buf, int len);
La primera forma crea un fstreambase que no está asociando a ningún fichero.
La segunda forma crea un fstreambase, abre el fichero especificado por name en el modo especificado por mode y lo conecta a ese fichero.
La tercera forma crea un fstreambase y lo conecta a un descriptor de fichero abierto y especificado por fd.
La cuarta forma crea un fstreambase y lo conecta a un descriptor de fichero abierto especificado por fd y usando un buffer especificado por buf con el tamaño indicado por len.
void attach(int);
Conecta con un descriptor de fichero abierto.
void close();
Cierra el filebuf y el fichero asociados.
void open(const char *name, int mode, int prot=filebuf::openprot);
Abre un fichero para el objeto especificado.
Para el parámetro mode se pueden usar los valores del enum open_mode definidos en la clase ios.
Clase |
Parámetro mode |
fstream | ios::in |
ofstream | ios::out |
El parámetro prot se corresponde con el permiso de acceso DOS, y se usa salvo que se use el valor ios::nocreate para el parámetro mode. Por defecto se usa el valor de permiso de lectura y escritura.
filebuf* rdbuf();
Devuelve el buffer usado.
void setbuf(char*, int);
Asigna un buffer especificado por el usuario al filebuf.
La declaración de esta clase está en el fichero fstream.h.
Proporciona un stream de entrada para leer desde un fichero usando un filebuf.
ifstream(); ifstream(const char *name, int mode = ios::in, int = filebuf::openprot); ifstream(int fd); ifstream(int fd, char *buf, int buf_len);
La primera forma crea un ifstream que no está asociando a ningún fichero.
La segunda forma crea un ifstream, abre un fichero de entrada en modo protegido y se conecta a él. El contenido del fichero, si existe, se conserva; los nuevos datos escritos se añaden al final. Por defecto, el fichero no se crea si no existe.
La tercera forma crea un ifstream, y lo conecta a un descriptor de un fichero fd abierto previamente.
La cuarta forma crea un ifstream conectado a un fichero abierto especificado mediante su descriptor, fd. El ifstream usa el buffer especificado por buf de longitud buf_len.
void open(const char *name, int mode, int prot=filebuf::openprot);
Abre un fichero para el objeto especificado.
Para el parámetro mode se pueden usar los valores del enum open_mode definidos en la clase ios.
Clase |
Parámetro mode |
fstream | ios::in |
ofstream | ios::out |
El parámetro prot se corresponde con el permiso de acceso DOS, y se usa salvo que se use el valor ios::nocreate para el parámetro mode. Por defecto se usa el valor de permiso de lectura y escritura.
filebuf* rdbuf();
Devuelve el buffer usado.
La declaración de esta clase está en el fichero fstream.
Proporciona un stream de salida para escribir a un fichero usando un filebuf.
ofstream(); ofstream(const char *name, int mode = ios::out, int = filebuf::openprot); ofstream(int fd); ofstream(int fd, char *buf, int buf_len);
La primera forma crea un ofstream que no está asociando a ningún fichero.
La segunda forma crea un ofstream, abre un fichero de salida y se conecta a él.
La tercera forma crea un ofstream, y lo conecta a un descriptor de un fichero fd abierto previamente.
La cuarta forma crea un ofstream conectado a un fichero abierto especificado mediante su descriptor, fd. El ofstream usa el buffer especificado por buf de longitud buf_len.
void open(const char *name, int mode, int prot=filebuf::openprot);
Abre un fichero para el objeto especificado.
Para el parámetro mode se pueden usar los valores del enum open_mode definidos en la clase ios.
Clase |
Parámetro mode |
fstream | ios::in |
ofstream | ios::out |
El parámetro prot se corresponde con el permiso de acceso DOS, y se usa salvo que se use el valor ios::nocreate para el parámetro mode. Por defecto se usa el valor de permiso de lectura y escritura.
filebuf* rdbuf();
Devuelve el buffer usado.
La declaración de esta clase está en el fichero fstream.h.
Proporciona un stream de salida y salida a un fichero usando un filebuf.
La entrada y la salida se inicializan usando las funciones de las clases base istream y ostream. Por ejemplo, fstream puede usar la función istream::getline() para extraer caracteres desde un fichero.
fstream(); fstream(const char *name, int mode = ios::in, int = filebuf::openprot); fstream(int fd); fstream(int fd, char *buf, int buf_len);
La primera forma crea un fstream que no está asociando a ningún fichero.
La segunda forma crea un fstream, abre un fichero con el acceso especificado por mode y se conecta a él.
La tercera forma crea un fstream, y lo conecta a un descriptor de un fichero fd abierto previamente.
La cuarta forma crea un fstream conectado a un fichero abierto especificado mediante su descriptor, fd. El fstream usa el buffer especificado por buf de longitud buf_len. Si buf es NULL o n no es positivo, el fstream será sin buffer.
void open(const char *name, int mode, int prot=filebuf::openprot);
Abre un fichero para el objeto especificado.
Para el parámetro mode se pueden usar los valores del enum open_mode definidos en la clase ios.
Clase |
Parámetro mode |
fstream | ios::in |
ofstream | ios::out |
El parámetro prot se corresponde con el permiso de acceso DOS, y se usa salvo que se use el valor ios::nocreate para el parámetro mode. Por defecto se usa el valor de permiso de lectura y escritura.
filebuf* rdbuf();
Devuelve el buffer usado.
La declaración de esta clase está en el fichero strstrea.h.
Clase base para especializar la clase ios para el manejo de streams de cadenas, esto se consigue inicializando ios::bp de modo que apunte a un objeto strstreambuf. Esto proporciona las comprobaciones necesarias para cualquier operación de entrada y salida de cadenas en memoria. Por ese motivo, la clase strstreambase está protegida y sólo es accesible para clases derivadas que realicen entradas y salidas.
strstreambase(); strstreambase(const char*, int, char *start);
La primera forma crea un strstreambase con el buffer de su dato streambuf en memoria dinámica reservada la primera vez que se usa. Las zonas de lectura y escritura son la misma.
La segunda forma crea un strstreambase con el buffer y la posición de comienzo especificados.
strstreambuf * rdbuf();
Devuelve un puntero a strstreambuf asociado con este objeto.
La declaración de esta clase está en el fichero strstrea.h.
Especialización de la clase ios para streams de cadena inicializando ios::bp para que apunte a un strstreambuf. Esto proporciona la condición necesaria para cualquier operación de entrada/salida en memoria. Por esa razón, strstreambase está diseñada completamente protegida y accesible sólo para clases derivadas que realicen entradas y salidas. Hace uso virtual de la clase ios.
strstreambase(); strstreambase(const char*, int, char *start);
La primera forma crea un strstreambase con el buffer de streambuf creado dinámicamente la primera vez que se usa. Las áreas de lectura y escritura son la misma.
La segunda forma crea un strstreambase con el buffer especificado y al posición de comienzo start.
strstreambuf* rdbuf();
Devuelve un puntero al strstreambuf asociado con este objeto.
La declaración de esta clase está en el fichero strstrea.
Proporciona las operaciones de entrada en un strstreambuf.
El bloque formado por ios, istream, ostream, iostream y streambuf, proporciona una base para especializar clases que trabajen con memoria.
istrstream(char *); istrstream(char *str, int n);
La primera forma crea un istrstream con la cadena especificada (el carácter nulo nunca se extrae).
La segunda forma crea un istrstream usando n bytes para str.
La declaración de esta clase está en el fichero strstrea.h.
Proporciona un stream de salida para inserción desde un array usando un strstreambuf.
ostrstream(); ostrstream(char *buf, int len, int mode = ios::out);
La primera forma crea un ostrstream con un array dinámico como stream de entrada.
La segunda forma crea un ostrstream con un buffer especificado por buf y un tamaño especificado por len. Si mode es ios::app o ios::ate, los punteros de lectura/escritura se colocan en la posición del carácter nulo de la cadena.
int pcount();
Devuelve el número de caracteres actualmente almacenados en el buffer.
char *str();
Devuelve y bloquea el buffer. El usuario debe liberar el buffer si es dinámico.
La declaración de esta clase está en el fichero strstrea.h.
Proporciona entrada y salida simultanea en un array usando un strstreambuf. La entrada y la salida son realizadas usando las funciones de las clases base istream y ostream.
Por ejemplo, strstream puede usar la función istream::getline() para extraer caracteres desde un buffer.
strstream(); strstream(char*, int sz, int mode);
La primera forma crea un strstream con el buffer del dato miembro strambuf de la clase base strstreambase creado dinámicamente la primera vez que se usa. Las áreas de entrada y salida son la misma.
La segunda forma crea un strstream con un buffer del tamaño especificado. Si el parámetro mode es ios::app o ios::ate, el puntero de entrada/salida se coloca en el carácter nulo que indica el final de la cadena.
char *str();
Devuelve y bloquea el buffer. El usuario debe liberar el buffer si es dinámico.
© Noviembre de 2001 Salvador Pozo, salvador@conclase.net