Beruflich Dokumente
Kultur Dokumente
CUSCO – PERÚ
2019
PRESENTACIÓN
Las instrucciones mencionados a continuación son explícitamente para una retroalimentación, para
aprender y comprender el funcionamiento de cada linea de código.
2
GLOSARIO DE TÉRMINOS SOBRE
(LENGUAJE DE PROGRAMACIÓN C)
GESTIÓN DE PROCESOS:
Librerías:
include: (Todas las librerías son declaradas con el preprocesador #include).
Ejemplo: #include <stdio.h>
stdio.h: Librería que contiene tipos, macros y funciones para la realización de tareas de E/
S. Ejemplo: #include <stdio.h>
stdlib.h: Librería que contiene tipos, macros y funciones para la conversión numérica, g
eneración de números aleatorios, búsquedas y ordenación, gestión de memoria y tareas
similares. Ejemplo: #include <stdlib.h>
argv[]: #include <stdio.h> Es un arreglo que contiene todos los parámetros recibidos.
argc:#include <stdio.h> Cantidad de parámetros contando el nombre del ejecutable que es el
primer parámetro.
Ejemplo: int main (int argc, char * argv []) El nombre de la variable argc significa "conteo de
argumentos", argc contiene el número de argumentos pasados al programa. El nombre de la
variable argv significa "vector de argumento". Un vector es una matriz unidimensional, y argv es
una matriz unidimensional de cadenas. Cada cadena es uno de los argumentos que se pasaron al
programa
3
break: #include <stdio.h> Tiene dos usos: para finalizar un case en una sentencia switch y para
forzar la terminación inmediata de un bucle.
char: #include <stdio.h> Es un tipo de dato que hace referencia a caracteres, los cuales se
almacenan como números enteros acorde a la tabla ASCII.
char *nombre: #include <stdio.h> (Un puntero es una variable que contiene una dirección de
memoria) donde Char es cualquier tipo valido en este caso es una cadena y nombre es el nombre de
la variable puntero.
char **var: #include <stdio.h> (Indirección múltiple o punteros a punteros) se puede hacer que un
puntero apunte a otro puntero que apunte a un valor de destino. Donde var es un puntero que apunta
a un puntero de tipo Char.
extern: #include <stdio.h> Es el tiempo de ejecución del programa donde el objeto existe en la
memoria, informa al enlazador de programas para que realice las unificaciones pertinentes entre
ficheros.
extern char **environ: #include <stdio.h> La variable environ apunta a una serie de punteros a
cadenas llamadas el environ". (Esta variable debe ser declarada en el programa de usuario, pero es
declarado en el archivo de encabezado <unistd.h> si la característica _GNU_SOURCE se define la
macro de prueba).
fork: #include <sys / types.h> Es una función que al momento de la ejecución crea un proceso hijo
que se diferencia de su creador únicamente por su PID.
getpid: #include <sys / types.h> #include <unistd.h> Devuelve el ID de proceso (PID) del proceso
de llamada. (Esta a menudo es usado por rutinas que generan nombres de archivos temporales
únicos.)
getppid: #include <sys / types.h> #include <unistd.h> Es una función que devuelve el
identificador de procesos del padre del procesos actual.
4
getuid: #include <sys / types.h> #include <unistd.h> Es una función que devuelve la identidad del
usuario.
getenv: #include <Stdlib.h> Esta función devuelve una cadena terminada en nulo con el valor de la
variable solicitada.
null: #include <stdio.h> Constante de puntero nulo (Se iguala a NULL para saber que no tiene
asignada ninguna dirección de memoria).
return: #include <stdio.h> Se usa para volver de una función, es decir al punto en que se hizo la
llamada a la función.
GESTIÓN DE HILOS:
Librerías:
include: (Todas las librerías son declaradas con el preprocesador #include).
Ejemplo: #include <stdio.h>
stdio.h: Librería que contiene tipos, macros y funciones para la realización de tareas de
E/S. Ejemplo: #include <stdio.h>
stdlib.h: Librería que contiene tipos, macros y funciones para la conversión numérica, g
eneración de números aleatorios, búsquedas y ordenación, gestión de memoria y tareas
similares. Ejemplo: #include <stdlib.h>
5
ch - valor del carácter
fp - puntero a archivo
pthread_t: #include <pthread.h> Es un tipo similar inty se crea cuando lo define, no cuando llama.
Ejemplo: pthread_t x; donde: x es una variable.
pthread_create(): #include <pthread.h> Es una función que utiliza para crear un nuevo hilo, con
atributos especificado. Ejemplo: pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void*), void *arg) dentro de un proceso. Si attr es NULL, se utilizan los
atributos predeterminados. Si los atributos especificados por attr se modifican más tarde, los
atributos del hilo no se ven afectados. Al completarse con éxito, pthread_create () almacena el ID
del hilo creado en la ubicación a la que hace referencia el hilo .
pthread_join(): #include <pthread.h> Es una función que proporciona un mecanismo simple que
permite que una aplicación espere a que un hilo termine. Ejemplo: después de que devuelve
pthread_join (), se puede reclamar cualquier almacenamiento de pila proporcionado por la
aplicación.
struct: #include <stdio.h> Una estructura se utiliza para almacenar los diferentes tipos de datos y
cada dato (miembro de la estructura) tiene su propia memoria independiente, lo que significa que
podemos acceder a cualquier miembro en cualquier momento. Ejemplo: struct [nombre de la
estructura] {lista de miembros}; donde: Parámetros del nombre de la estructura El nombre de tipo
se le dio a la estructura. Lista de miembros Miembros que la estructura puede contener.
GESTIÓN DE SENIALES:
Librerías:
include: (Todas las librerías son declaradas con el preprocesador #include).
Ejemplo: #include <stdio.h>
6
signal.h: La libreria <signal.h> definirá las siguientes constantes simbólicas, cada una
de las cuales se expande a una expresión constante distinta del tipo: nulo (*) (int)
cuyo valor no coincide con ninguna función declarable.
stdio.h: Librería que contiene tipos, macros y funciones para la realización de tareas de
E/S. Ejemplo: #include <stdio.h>
static void(): #include <signal.h> Static significa que el método está asociado con la clase, no con
una instancia específica (objeto) de esa clase. Esto significa que puede llamar a un método estático
sin crear un objeto de la clase.
Void significa que el método no tiene valor de retorno. Si el método retornara int y escribirías en int
lugar de void.
7
pthread_t: #include <pthread.h> Es un tipo similar inty se crea cuando lo define, no cuando llama.
Ejemplo: pthread_t x; donde: x es una variable.
pthread_create(): #include <pthread.h> Es una función que utiliza para crear un nuevo hilo, con
atributos especificado. Ejemplo: pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void*), void *arg) dentro de un proceso. Si attr es NULL, se utilizan los
atributos predeterminados. Si los atributos especificados por attr se modifican más tarde, los
atributos del hilo no se ven afectados. Al completarse con éxito, pthread_create () almacena el ID
del hilo creado en la ubicación a la que hace referencia el hilo .
pthread_join(): #include <pthread.h> Es una función que proporciona un mecanismo simple que
permite que una aplicación espere a que un hilo termine. Ejemplo: después de que devuelve
pthread_join (), se puede reclamar cualquier almacenamiento de pila proporcionado por la
aplicación.
struct: #include <stdio.h> Una estructura se utiliza para almacenar los diferentes tipos de datos y
cada dato (miembro de la estructura) tiene su propia memoria independiente, lo que significa que
podemos acceder a cualquier miembro en cualquier momento. Ejemplo: struct [nombre de la
estructura] {lista de miembros}; donde: Parámetros del nombre de la estructura El nombre de tipo
se le dio a la estructura. Lista de miembros Miembros que la estructura puede contener.
getpid: #include <sys / types.h> #include <unistd.h> Devuelve el ID de proceso (PID) del proceso
de llamada. (Esta a menudo es usado por rutinas que generan nombres de archivos temporales
únicos.)
getpid: #include <sys / types.h> #include <unistd.h> Devuelve el ID de proceso (PID) del proceso
de llamada. (Esta a menudo es usado por rutinas que generan nombres de archivos temporales
únicos.)
CONCURRENCIA:
Librerías:
include: (Todas las librerías son declaradas con el preprocesador #include).
Ejemplo: #include <stdio.h>
8
stdio.h: Librería que contiene tipos, macros y funciones para la realización de tareas de
E/S. Ejemplo: #include <stdio.h>
semaphore.h: El encabezado definirá el tipo sem_t , que se utiliza para realizar operaciones
de semáforo. El semáforo se puede implementar utilizando un descriptor de archivos, en
cuyo caso las aplicaciones pueden abrir al menos un total de {OPEN_MAX} archivos y
semáforos. El símbolo SEM_FAILED se definirá Ejemplo: #include <semaphore.h>
Lo siguiente se declarará como funciones y también se puede definir como macros. Se
proporcionarán prototipos de funciones.
La inclusión del encabezado <semaphore.h> puede hacer que los símbolos visibles se
definan en los encabezados <fcntl.h> y <time.h> .
9
BUFSIZE: #include <stdio.h> Es una macro constante que representa el tamaño del búfer de
entrada. Se define en stdio.h y representa el tamaño de su implementación de C. Un tamaño común
es 512. Nos da el número máximo de caracteres que se pueden transferir a través de nuestro flujo de
entrada estándar, stdin. Ejemplo: #define BUFSIZE 5.
pthread_create(): #include <pthread.h> Es una función que utiliza para crear un nuevo hilo, con
atributos especificado. Ejemplo: pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void*), void *arg) dentro de un proceso. Si attr es NULL, se utilizan los
atributos predeterminados. Si los atributos especificados por attr se modifican más tarde, los
atributos del hilo no se ven afectados. Al completarse con éxito, pthread_create () almacena el ID
del hilo creado en la ubicación a la que hace referencia el hilo .
pthread_join(): #include <pthread.h> Es una función que proporciona un mecanismo simple que
permite que una aplicación espere a que un hilo termine. Ejemplo: después de que devuelve
pthread_join (), se puede reclamar cualquier almacenamiento de pila proporcionado por la
aplicación.
sem_t: #include <semaphore.h> sem_t será específico del sistema operativo, al igual que las
llamadas de señal / espera, ya que también necesariamente llaman al núcleo del sistema operativo.
10
semáforo resultante de esta operación es positivo, entonces no se bloquearon subprocesos esperando
a que el semáforo se desbloquee; el valor del semáforo simplemente se incrementa.
void * (void *arg): #include <stdio.h> Es puntero general que pasa a la función, se utiliza
principalmente en las devoluciones de llamada, cuando se proporciona la biblioteca con la dirección
de CB y alguna dirección de contexto. La biblioteca no necesita saber el tipo de datos, por lo que el
puntero se almacena como vacío * y se entrega al CB, cuando se le llama desde el código de la
biblioteca, el CB, que forma parte del código de la aplicación, sabe exactamente cuál es el tipo de
datos pasado como un contexto y podría lanzar el puntero en consecuencia.
11
Bibliografía:
1. Mejía, M. J. P. (2004). C y C++ de afán. Universidad de
Antioquia.https://books.google.com.pe/bookshl=es&lr=&id=E1CMxC4KKSYC&oi=fnd&p
g=PR11&dq=Mej%C3%Ada,+M.+J.+P.+(2004).%C2%A0C+y+C%2B%2B+de+af
%C3%A1n+.Universidad+de+Antioquia.&ots=r0bw1K1vpi&sig=4hSsuNyexmZCDu13Z9
CN1T9-X0I#v=onepage&q&f=false
2. Orallo, E. H., Orallo, J. H., & Lizandra, M. C. J. (2001). C++ estándar. Editorial
Paraninfo.https://books.google.com.pe/bookshl=es&lr=&id=sjxQIhrMCegC&oi=fnd&pg=P
P1&dq=Orallo,+E.+H.,+Orallo,+J.+H.,+%26+Lizandra,+M.+C.+J.+(2001).%C2%A0C%2B
%2B+est%C3%A1ndar.
+Editorial+Paraninfo.&ots=xT2HWEVF5C&sig=ooT4OVKm54v3vAkul1Bi3RuUojg#v=o
nepage&q&f=false
3. Wagner, T., & Towsley, D. (1995). Getting started with posix threads. University of
Massachusetts at Amherst.
https://profs.info.uaic.ro/~busaco/teach/courses/net/docs/pthreads.pdf
4. WIKIBOOKS, (2018). C Programming/string.h
https://en.wikibooks.org/wiki/C_Programming/string.h
12