{"id":51,"date":"2013-02-21T11:19:32","date_gmt":"2013-02-21T11:19:32","guid":{"rendered":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/?p=51"},"modified":"2013-02-21T11:50:07","modified_gmt":"2013-02-21T11:50:07","slug":"entrada-salida-estandar","status":"publish","type":"post","link":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/entrada-salida-estandar\/","title":{"rendered":"Entrada y salida est\u00e1ndar"},"content":{"rendered":"<p><\/p>\n<h3>Dispositivos de entrada\/salida<\/h3>\n<p>Para que un usuario pueda comunicarse con el ordenador es necesario disponer de alg\u00fan dispositivo de entrada que permita introducir \u00f3rdenes. Asimismo, para que el usuario pueda aprovechar los resultados de las \u00f3rdenes que ha introducido, necesita que dichos resultados se le muestren de alguna manera.<\/p>\n<p>Estos canales de comunicaci\u00f3n se denominan dispositivos de entrada\/salida. En Linux los dispositivos por defecto son los denominados\u00a0<em>entrada est\u00e1ndar<\/em>\u00a0y\u00a0<em>salida est\u00e1ndar<\/em>. Si\u00a0 un programa lee de la entrada est\u00e1ndar estar\u00e1 obteniendo datos desde el teclado. Cuando escribe alg\u00fan resultado a la salida est\u00e1ndar, lo estar\u00e1 haciendo a la pantalla.<\/p>\n<p>Ciertos comandos no utilizan la entrada est\u00e1ndar (teclado) para recibir la informaci\u00f3n que necesitan para ejecutarse, sino que la reciben como argumento directamente.<\/p>\n<p>El\u00a0 inter\u00e9s del concepto de entrada\/salida est\u00e1ndar estriba en que todos los dispositivos son tratados como si fueran ficheros. Por esta raz\u00f3n, a los programas no les importa si est\u00e1n leyendo de un teclado o de un fichero ni tampoco si est\u00e1n escribiendo en la pantalla o, de nuevo, en un fichero.<\/p>\n<h3>El comando cat<\/h3>\n<p>Para ilustrar la noci\u00f3n de entrada\/salida est\u00e1ndar, vamos a introducir un comando denominado\u00a0<em>cat<\/em>. Este comando toma la informaci\u00f3n que se le proporciona de entrada, la une y la vuelve a dar como salida.<\/p>\n<p>Por ejemplo, si tecleamos lo siguiente<\/p>\n<pre>cat<\/pre>\n<p>el sistema quedar\u00e1 aparentemente en espera mostrando una l\u00ednea en blanco. Si tecleamos una frase y pulsamos Intro, vemos que\u00a0<em>cat<\/em>\u00a0muestra la misma frase por pantalla. Pulsando CTRL-D podemos finalizar la ejecuci\u00f3n.<\/p>\n<pre>cat\r\nMuestra esta frase\r\nMuestra esta frase<\/pre>\n<p>Este ejemplo constituye una demostraci\u00f3n del uso de la entrada\/salida est\u00e1ndar. La l\u00ednea en blanco es la forma de indicar que\u00a0<em>cat<\/em>\u00a0est\u00e1 esperando algo del teclado (entrada est\u00e1ndar). Cuando lo tiene, realiza su funci\u00f3n que es mostrarlo por pantalla (salida est\u00e1ndar).<\/p>","protected":false},"excerpt":{"rendered":"<p>Dispositivos de entrada\/salida Para que un usuario pueda comunicarse con el ordenador es necesario disponer de alg\u00fan dispositivo de entrada que permita introducir \u00f3rdenes. Asimismo, para que el usuario pueda aprovechar los resultados de las \u00f3rdenes que ha introducido, necesita que dichos resultados se le muestren de alguna manera. Estos canales de comunicaci\u00f3n se denominan &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/multimedia.uoc.edu\/blogs\/linux\/entrada-salida-estandar\/\" class=\"more-link\">Seguir leyendo<span class=\"screen-reader-text\"> \u00abEntrada y salida est\u00e1ndar\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-51","post","type-post","status-publish","format-standard","hentry","category-gnulinux","entry"],"_links":{"self":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":2,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"predecessor-version":[{"id":56,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/51\/revisions\/56"}],"wp:attachment":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}