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
eco#!/usr/bin/python3 import sys if __name__ == '__main__': from eco import eco sys.exit(eco(sys.argv))
Fitxer
eco.pyimport sys def eco(arguments): for i in range(len(arguments)): print('argument ',i,' és ',arguments[i]) return 0 # Ha anat bé. if __name__ == '__main__': sys.exit(eco(sys.argv))
Fitxer
eco.c#include<stdio.h> #include<stdlib.h> int main(int argc, char * argv[]) { int i; for(i = 0; i<argc; i++) { printf("argument %d és %s\n", i, argv[i]); } return EXIT_SUCCESS; }
Un cop descarregats, estudieu que fa i com ho fa cada fitxer. En bash, feu:
$ 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 [1])
$ 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
Footnotes