{"id":77,"date":"2007-10-03T15:12:53","date_gmt":"2007-10-03T13:12:53","guid":{"rendered":"http:\/\/pepelife.es\/2007\/10\/03\/una-shell-o-interprete-de-comandos-en-lenguaje-c\/"},"modified":"2007-10-03T15:15:11","modified_gmt":"2007-10-03T13:15:11","slug":"una-shell-o-interprete-de-comandos-en-lenguaje-c","status":"publish","type":"post","link":"http:\/\/pepelife.es\/blog\/2007\/10\/03\/una-shell-o-interprete-de-comandos-en-lenguaje-c\/","title":{"rendered":"Una Shell en lenguaje C [Int&eacute;rprete de Comandos]."},"content":{"rendered":"<p align=\"justify\">Bueno, esto para los futuros inform&aacute;ticos\/as y para la gente que est&aacute; aprendiendo C en general, dejo aqu&iacute; una pr&aacute;ctica que tuve que hacer en la asignatura de Sistemas Operativos de 1\u00c2\u00ba de Ingenier&iacute;a en Inform&aacute;tica. La pr&aacute;ctica consiste en crear una Shell o Int&eacute;rprete de Comandos para linux en C, el enunciado dice as&iacute;:<\/p>\n<p><strong>Enunciado<\/strong><\/p>\n<p align=\"justify\">\nRealice un programa que liste los ficheros del directorio en curso y despu&eacute;s muestre por pantalla el mensaje FIN DE PROGRAMA.Realice un interprete de comandos reducido. La funci&oacute;n b&aacute;sica de este interprete de comandos ser&aacute; pedir un comando o programa, ejecutarlo y volver a pedir otro comando. El programa terminar&aacute; cuando se teclee el comando FIN.\n<\/p>\n<p align=\"justify\">\nEl ordinograma del programa ser&aacute;:<br \/>\n<a href=\"Uni\/shell.jpg\" target=\"_blank\"><img src=\"Uni\/shellp.jpg\" alt=\"Ordinograma.\" \/><\/a><\/p>\n<p>Requisitos:\n<\/p>\n<p align=\"justify\">\na) Los comandos o programas se ejecutar&aacute;n poniendo la ruta absoluta<br \/>\nb) Si el comando o programa no tiene ruta absoluta se supondr&aacute; que se encuentra en el directorio<br \/>\ndirectorio \/bin.<br \/>\nc) Si el comando o proceso no se ejecuta correctamente se visualizar&aacute; el mensaje de error.<br \/>\nd) El interprete de comandos quedar&aacute; bloqueado hasta que termine el programa .<br \/>\ne) El interprete de comandos tendr&aacute; el siguiente prompt :<br \/>\n#@><br \/>\nOPCIONAL:<br \/>\nf) Permitir que ejecute un comando o programa en segundo plano si el programa termina con &#038;.<br \/>\ng) Cualquier otra opci&oacute;n se valorar&aacute;\n<\/p>\n<p align=\"justify\">\nDespu&eacute;s de todo esto, finalmente mi shell cumple todos los requisitos, y adem&aacute;s le a&ntilde;ad&iacute; una serie de extras como por ejemplo tuber&iacute;as ( pipes ) , redireccionamiento de entrada y salida&#8230; etc.<\/p>\n<p>Aqu&iacute; ten&eacute;is la <a href=\"http:\/\/pepelife.es\/Uni\/shell.pdf\" target=\"_blank\">documentaci&oacute;n<\/a> y el <a href=\"http:\/\/pepelife.es\/Uni\/JAShell.c\" target=\"_blank\">c&oacute;digo<\/a>, espero que os sea de utilidad.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bueno, esto para los futuros inform&aacute;ticos\/as y para la gente que est&aacute; aprendiendo C en general, dejo aqu&iacute; una pr&aacute;ctica que tuve que hacer en la asignatura de Sistemas Operativos de 1\u00c2\u00ba de Ingenier&iacute;a en Inform&aacute;tica. La pr&aacute;ctica consiste en crear una Shell o Int&eacute;rprete de Comandos para linux en C, el enunciado dice as&iacute;: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,7],"tags":[],"_links":{"self":[{"href":"http:\/\/pepelife.es\/blog\/wp-json\/wp\/v2\/posts\/77"}],"collection":[{"href":"http:\/\/pepelife.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pepelife.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pepelife.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/pepelife.es\/blog\/wp-json\/wp\/v2\/comments?post=77"}],"version-history":[{"count":0,"href":"http:\/\/pepelife.es\/blog\/wp-json\/wp\/v2\/posts\/77\/revisions"}],"wp:attachment":[{"href":"http:\/\/pepelife.es\/blog\/wp-json\/wp\/v2\/media?parent=77"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pepelife.es\/blog\/wp-json\/wp\/v2\/categories?post=77"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pepelife.es\/blog\/wp-json\/wp\/v2\/tags?post=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}