C++: Qué es un stream


He estado escuchando sobre streams, más específicamente sobre streams de archivos.

Entonces, ¿qué son?

Es algo que tiene una ubicación en la memoria?

¿Es algo que contiene datos?

¿Es solo una conexión entre un archivo y un objeto?

Cualquier ayuda sería apreciada

Author: Kshitij Saraogi, 2012-08-27

4 answers

El término stream es una abstracción de una construcción que le permite enviar o recibir un número desconocido de bytes. La metáfora es una corriente de agua. Toma los datos tal como vienen, o envíelos según sea necesario. Contraste esto con una matriz, por ejemplo, que tiene una longitud fija conocida.

Los ejemplos donde se utilizan flujos incluyen la lectura y escritura en archivos, la recepción o el envío de datos a través de una conexión externa. Sin embargo, el término stream es genérico y no dice nada sobre lo específico aplicación.

 43
Author: Jonathan Wood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-16 16:30:46

Los IOStreams son una interfaz front-end(std::istream, std::ostream) se utiliza para definir funciones de entrada y salida. Los flujos también almacenan opciones de formato, por ejemplo, la base a usar para la salida de enteros y contienen un objeto std::locale para todo tipo de personalización. Su componente más importante es un puntero a std::streambuf que define cómo acceder a una secuencia de caracteres, por ejemplo, un archivo, una cadena, un área en la pantalla, etc. Específicamente para archivos y cadenas se proporcionan búferes de flujo especiales y clases derivadas de las clases base de stream se proporcionan para facilitar la creación. Describir todas las instalaciones de la biblioteca de IOStreams puede llenar casi todo un libro: En C++ 2003, aproximadamente la mitad de la sección de la biblioteca se dedicó a la funcionalidad relacionada con la transmisión.

 9
Author: Dietmar Kühl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-27 16:02:27

Stream es una cola lineal que conecta un archivo al programa y mantiene el flujo de datos en ambas direcciones. Aquí la fuente es cualquier archivo, dispositivo de E/S, disco duro, CD/DVD, etc.

Básicamente la secuencia es si dos tipo 1.Flujo de texto 2.Flujo binario

Flujo de texto : Es una secuencia de caracteres ordenados en línea y cada línea terminada por nueva línea (unix).

Flujo binario: Son datos ya que están codificados internamente en la memoria principal de la computadora, sin ninguna modificación.

 6
Author: Sandeep_black,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-26 17:55:54

El sistema de archivos está diseñado para funcionar con una amplia variedad de dispositivos, incluidos terminales, unidades de disco, unidades de cinta, etc. Aunque cada dispositivo es diferente, el sistema de archivos transforma cada uno en un dispositivo lógico llamado stream. Las transmisiones son independientes del dispositivo, por lo que la misma función se puede usar para escribir un archivo de disco y un archivo de cinta. En términos más técnicos, stream proporciona una abstracción entre el programador y el dispositivo real que se está utilizando.

 4
Author: Farsan Rashid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-04 10:19:09