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 $