Las corrientes del estándar del son canales preconnected de entrada y de salida entre un programa de computadora y su ambiente (típicamente un terminal del texto) cuando comienza la ejecución. Estas conexiones estándar se proporcionan en el Unix y el Unix-como ambientes runtime C y C++ de los sistemas operativos del, y sus sucesores. Las tres conexiones de la entrada-salida se llaman la entrada estándar, la salida estándar y el error estándar .

Fondo

En la mayoría de los sistemas operativos que precedían Unix, los programas tuvieron que conectar explícitamente con los datos apropiados de entrada y de salida. En muchos de esos sistemas, esto podía ser un desafío programado intimidating creado por intrincaciones OS-específicas tales como obtención de ajustes del ambiente del control, acceso de una tabla de ficheros local, determinación del conjunto de datos previsto, y manipulación del caso correcto de un lector de tarjetas, de una impulsión de cinta magnética, de un accionamiento de disco, de una línea impresora, de un sacador de tarjeta, o de un terminal interactivo.

Unix proporcionó varios avances innovadores, uno cuyo era proporcionar los dispositivos abstractos del : quitó la necesidad de un programa de saber o de cuidar con lo que un poco comunicaban los dispositivos él. Más viejos sistemas operativos forzaron sobre el programador una estructura de registro y, con frecuencia la semántica de datos y el control de dispositivo no-ortogonales. Unix eliminó esta complejidad con el concepto de una secuencia de datos: una secuencia pedida de octetos de datos que se pueden leer hasta el extremo del archivo . Un programa puede también escribir octetos según lo deseado y no necesita (y no poder fácilmente) declarar cuántos allí serán, o cómo ellos será agrupado.

Otra brecha de Unix era asociar automáticamente la entrada y la salida por omite- programa (y el programador) no hizo absolutamente nada establecer la entrada y la salida para un programa típico de la entrada-proceso-salida (a menos que eligió un diverso paradigma). En cambio, los sistemas operativos anteriores requirieron generalmente algún-a menudo job control language complejo establecer conexiones, o la carga equivalente tuvo que ser orquestrada por el programa.

Puesto que Unix proporcionó corrientes estándar, el ambiente runtime de Unix C fue obligado para apoyarlo también. Consecuentemente, la mayoría de los ambientes runtime de C (y los descendientes de la c), sin importar el sistema operativo, proporcionan funcionalidad equivalente.

¡Entrada estándar (stdin)

La entrada estándar es datos (a menudo texto) que entran un programa. Las transferencias de datos de las peticiones de programa por medio del leyeron la operación de . No todos los programas requieren la entrada. Por ejemplo, el dir del o el programa del ls del (que exhiben los nombres del archivo contenidos en un directorio) realiza su operación sin ninguna entrada de datos de la corriente.

A menos que el volviera a dirigir, la entrada se espera del terminal del texto que comenzó el programa.

El descriptor del fichero para la entrada estándar es 0 (cero); la variable correspondiente del es el FILE* stdin; semejantemente, la variable del del es std:: cin.

¡Salida estándar (stdout)

La salida estándar es la corriente donde un programa escribe sus datos de salida. La transferencia de datos de las peticiones de programa con el escribe la operación de . No todos los programas generan salida. Por ejemplo el archivo del retitula el comando de (vario llamado el milivoltio, movimiento, del ren ) es silencioso en éxito.

A menos que el volviera a dirigir, la salida estándar es el terminal del texto que inició el programa.

El descriptor del fichero para la salida estándar es 1 (una); la variable correspondiente del es el FILE* stdout; semejantemente, la variable del del es std:: cout.

¡Error estándar (stderr)

El error estándar es otra corriente de salida usada típicamente por programas para hacer salir los mensajes de error o los diagnósticos es una independiente de la corriente de la salida estándar y puede ser vuelto a dirigir por separado. La destinación generalmente es el terminal del texto que comenzó el programa para proporcionar la mejor ocasión de ser considerado incluso si se vuelve a dirigir la salida estándar del (observado tan no fácilmente). Por ejemplo, el resultado de un programa en una tubería se vuelve a dirigir a la entrada del programa siguiente, pero los errores de cada programa todavía van directo al terminal del texto.

Está aceptable-y normal-para la salida estándar del y el error estándar del que se dirigirá a la misma destinación, tal como el terminal del texto. Los mensajes aparecen en la misma orden que el programa le escribe, a menos que el buffering esté implicado. (Por ejemplo, una situación común es cuando la corriente del error estándar está inseparada pero línea-se protege la corriente de salida estándar; en este caso, el texto escrito al error estándar puede aparecer más adelante en el terminal anterior, si el almacenador intermediario estándar de la corriente de salida no es todavía lleno.)

El descriptor del fichero para el error estándar es 2; la variable correspondiente del es el FILE* stderr. El jefe estándar del del de C++ proporciona dos variables asociadas a esta corriente: std:: cerr y std:: clog, el estar anterior inseparado y estes 3ultimo que usan el mismo mecanismo del buffering que el resto de las corrientes de C++.

Cronología

los años 50: FORTRAN

El FORTRAN tenía el equivalente de los descriptores del fichero de Unix, UNIT=5 para el stdin, y UNIT=6 para el stdout. lang=" del CAÑERÍA DEL PROGRAMA (UNIT=5, *) NÚMERO LEÍDO ESCRIBIR (UNIT=6, “(F5.3) ") “el NÚMERO ES: ”, NÚMERO EXTREMO

1960: ALGOL 60

el ALGOL 60 fue criticado para no tener ningún acceso del archivo estándar.

1968: ALGOL 68

instalaciones de entrada y de la salida de s del ALGOL 68 las 'fueron referidas colectivamente como el transput. El Koster coordinó la definición del estándar del transput del . Este incluido estándar: stand in, stand out, stand error y stand back.

Ejemplo:

 cañería: ( Número VERDADERO; getf (soporte adentro, ($g$, número)); printf (($" El número es: " " de g (6.4); O " $, número)); # O # putf (destacarse, ($" El número es: " ¡" de g (6.4);! " $, número)); newline (destacarse) ) 

los años 70: C y Unix

En el stdin de programación del lenguaje C del, el stdout y las corrientes del stderr fueron atados a los descriptores del fichero existentes de Unix 0, 1 y 2 respectivamente.

años 80: C++

En el C++, las corrientes estándar son referidas por el cin del, el cout del y los objetos del cerr del (véase el Iostream ).

GUIs

Los interfaces utilizador gráficos (GUIs) hacen uso raramente de las corrientes estándar. Por lo tanto, la reorientación de programas del GUI o construir una tubería del GUI es ni práctico ni útil. El análogo más cercano es probablemente el corte del (o que copia ) a partir de un uso y que pegan en otro. Puesto que se requieren las operaciones de usuario manuales, la mudanza de una gran cantidad de gomas del no es especialmente eficiente. Una excepción notable es el encargado de ventana de embaldosado de Dwm, que utiliza su stdin para exhibir la información de estado.

Algunos programas del GUI, sobre todo sobre Unix, todavía escriben eliminan errores de la información al error estándar.

Ver también

Cambio de dirección (Unix)
Tubería (Unix)
Corriente (computadora)
Entrada-salida
Entrada-salida del fichero C

.

  • Zenithic
  • Golden spiral
    Random links:Montaje más lluvioso | Inglés del holandés de Pennsylvania | Solenoide Invictus (venda) | El servir de Anne

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">