Material para aprender a programar en shell: http://goo.gl/pj9KD
Diapositivas de repaso: http://goo.gl/Q30UB
Código(búsqueda, API's, Android, etc.): http://code.google.com/
Descarga el material de utilerías.
Haz una evidencia de lectura (cuadro sinóptico, mapa mental, mapa de araña, etc.)
Haz la siguiente investigación en Internet:
Busca en qué consiste:
Dist-utils
bin-utils
shell-utils
file-utils
core-utils
diff-utils
Anota en tu libreta cuál o cuáles son los comandos que forman parte de cada una de estas utils y una descripción breve, así como la sintaxis de cada uno.
#include#include char* Mstrupr(char* szCad); int main() { char szCadena[] = "Esto es una cadena"; printf("%s\n", Mstrupr(szCadena)); printf("%s\n", Mstrupr("Esto es otra cadena")); return 0; } char* Mstrupr(char* szCad) { int i; for (i=0; szCad[i]; i++) szCad[i] = toupper(szCad[i]); return szCad; }
$ ./sample ESTO ES UNA CADENA Segmentation Fault (core dumped) $
$ gdb sample . . (gdb) break main Breakpoint 1 at 0x8048348: file sample.c, line 8 (gdb) run Breakpoint 1, main() at sample.c:8 8 char szCadena[] = "Esto es una cadena"; (gdb) next 10 printf("%s\n", Mstrupr(szCadena)); (gdb) next ESTO ES UNA CADENA 12 printf("%s\n", Mstrupr("Esto es otra cadena")); (gdb) step Mstrupr(szCad=0x804856f "Esto es otra cadena") at sample.c:17 21 for (i=0; szCad[i]; i++) (gdb) next 22 szCad[i] = toupper(szCad[i]); (gdb) next Program received signal SIGSEGV, Segmentation fault 0x80484e1 in Mstrupr (szCad=0x08048e1 in Mstrupr (szCad=0x0804856f "Esto es otra cadena") at sample.c:19 22 szCad[i] = toupper(szCad[i]); (quit) next Program terminated with signal SIGSEGV, Segmentation fault The program no longer exists (gdb) quit $
szCad[i] = toupper(szCad[i]);
Mstrupr( )
, es decir, el valor a la izquierda de la asignación es una localización de memoria que no podemos modificar. Dicha posición de memoria es parte de la cadena "Esto es otra cadena", concretamente el primer carácter.Mstrupr( )
no sufre ninguna modificación).int main() { char szCadena[] = "Esto es una cadena"; char szOtraCadena[] = "Esto es otra cadena"; printf("%s\n", Mstrupr(szCadena)); printf("%s\n", Mstrupr(szOtraCadena)); return 0; }
$ ./sample ESTO ES UNA CADENA ESTO ES OTRA CADENA $