.. _execo: Exemple eco =========== Programa que fa una cosa semblant a la comanda interna de bash *echo*. La comanda *echo* posa en una línia al canal estandard de sortida, tots els arguments rebuts separats per un espai. El programa *eco* posa en cada línia del canal estandard de sortida un argument del arguments rebuts, indicant a més el seu ordre en la línia. #. Fitxer :download:`eco <./eco>` .. literalinclude:: eco :language: python3 #. Fitxer :download:`eco.py <./eco.py>` .. literalinclude:: eco.py :language: python3 #. Fitxer :download:`eco.c <./eco.c>` .. literalinclude:: eco.c :language: C Un cop descarregats, estudieu que fa i com ho fa cada fitxer. En *bash*, feu: .. code:: bash $ chmod +x eco $ export PATH=$PATH":." $ eco hola que tal argument 0 és ./eco argument 1 és hola argument 2 és que argument 3 és tal $ python3 eco.py hola que tal argument 0 és eco.py argument 1 és hola argument 2 és que argument 3 és tal $ python3 >>> from eco import eco >>> import sys >>> eco(sys.argv) argument 0 és 0 >>> eco('hola que tal'.split()) argument 0 és hola argument 1 és que argument 2 és tal 0 >>> exit() El programa en C, primer cal compilar-lo (primera línia amb el resultat d'un nou fitxer objecte eco.o), després muntar-lo (segona línia creant l'executable en codi màquina ecu [#]_) .. code:: bash $ gcc -c eco.c $ gcc -o ecu eco.o $ ecu hola que tal argument 0 és ecu argument 1 és hola argument 2 és que argument 3 és tal .. rubric:: Footnotes .. [#] Hem canviat el nom per no esborrar el fitxer de text executable :file:`eco` de python.