start
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| start [2012/07/28 15:53] – [Clase 1: Lenguaje C, E/S Estándar] lmateu | start [2014/11/15 12:44] (actual) – [Servidor Multi-cliente con select] lmateu | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== CC3301 - Programación de Software de Sistemas ====== | ====== CC3301 - Programación de Software de Sistemas ====== | ||
| - | Programa | + | Estos son los apuntes |
| + | [[http:// | ||
| + | José Piquer. Hay un índice del contenido en los comentarios para las clases 2, 3, 4 y 5. El que vea | ||
| + | los siguientes videos sin el índice agregue un comentario con el contenido por favor. | ||
| + | Pero cuidado, la enumeración de las clases de esta página no corresponde uno a uno a la enumeración de los 23 videos, | ||
| + | ni siquiera el orden. | ||
| + | |||
| + | En los apuntes de [[temario|Luis Mateu]] se explican los mismos conceptos de esta página pero con más detalle. | ||
| - | [[http:// | ||
| ===== Clase 1: Lenguaje C, E/S Estándar ===== | ===== Clase 1: Lenguaje C, E/S Estándar ===== | ||
| - | === Historia === | + | Ver contenido extendido |
| - | + | ||
| - | * En los 50's nace el primer lenguaje de programación: | + | |
| - | * En los 60's surge el primer lenguaje con programación estructurada: | + | |
| - | * En los 70's aparece Pascal (de Niklaus Wirth). | + | |
| - | * También en los 70's aparece C (de Brian Kernighan). | + | |
| - | * En los 80's Bjarne Stroustrup le agrega clases a C, creando C++. Tampoco es robusto y es complejo. | + | |
| - | * En los 90's James Gosling concibe Java. Es complejo pero **robusto**. | + | |
| - | + | ||
| - | === Comparación entre C y Java === | + | |
| - | + | ||
| - | == Programación orientada a objetos == | + | |
| - | + | ||
| - | * C no es un lenguaje orientado a objetos: no posee clases. | + | |
| - | * En C se definen los tipos compuestos mediante la declaración **struct**. | + | |
| - | * La abstracción que describe como se procesan los datos es la función mientras que en Java es la clase. | + | |
| - | + | ||
| - | == Tipos primitivos == | + | |
| - | + | ||
| - | * Usan casi los mismos tipos primitivos: char, short, int, long, float, double. | + | |
| - | * Pero en C, char es en realidad un entero de 1 bytes, mientras que en Java ocupa 2 bytes y solo almacena caracteres. | + | |
| - | * En C se puede agregar el atributo unsigned a los enteros. | + | |
| - | + | ||
| - | == Strings == | + | |
| - | + | ||
| - | * C no posee el tipo String. | + | |
| Ejemplo estudiado: [[http:// | Ejemplo estudiado: [[http:// | ||
| Línea 38: | Línea 19: | ||
| #include < | #include < | ||
| - | /* | + | /* |
| * Copia la entrada en su salida sin modificaciones | * Copia la entrada en su salida sin modificaciones | ||
| */ | */ | ||
| Línea 52: | Línea 33: | ||
| } | } | ||
| </ | </ | ||
| - | |||
| Pueden probar compilando este programa: | Pueden probar compilando este programa: | ||
| Línea 72: | Línea 52: | ||
| </ | </ | ||
| - | Entonces los archivos out, out2 y out3 todos son iguales. | + | |
| ====== Clase 2: Lenguaje C y tipos básicos ====== | ====== Clase 2: Lenguaje C y tipos básicos ====== | ||
| + | Ver contenido extendido en [[tipos|tipos]] y [[variables|variables]]. | ||
| ===== Enteros ===== | ===== Enteros ===== | ||
| char: 8 bits, 1 byte | char: 8 bits, 1 byte | ||
| Línea 94: | Línea 75: | ||
| ===== Punteros ===== | ===== Punteros ===== | ||
| + | Ver contenido extendido en [[punteros|punteros]] y [[strings|strings]]. | ||
| ==== Strings ==== | ==== Strings ==== | ||
| Línea 3149: | Línea 3131: | ||
| Atendemos todos los clientes en el mismo ciclo, usando select: | Atendemos todos los clientes en el mismo ciclo, usando select: | ||
| <code C> | <code C> | ||
| + | #define _BSD_SOURCE 1 | ||
| + | |||
| #include < | #include < | ||
| #include < | #include < | ||
| Línea 3237: | Línea 3221: | ||
| } | } | ||
| } | } | ||
| + | </ | ||
| + | |||
| + | Se necesita definir la macro _BSD_SOURCE al inicio del programa para hacer válido el uso de la función getdtablesize(). | ||
| + | |||
| + | < | ||
| + | % man 3 getdtablesize | ||
| + | NAME | ||
| + | | ||
| + | |||
| + | SYNOPSIS | ||
| + | # | ||
| + | |||
| + | int getdtablesize(void); | ||
| + | |||
| + | | ||
| + | |||
| + | | ||
| + | Since glibc 2.12: | ||
| + | | ||
| + | | ||
| </ | </ | ||
start.1343490832.txt.gz · Última modificación: por lmateu
