mirror of https://github.com/JavMB/ejercicios
Remove unnecessary comment from variables.c
This commit is contained in:
parent
bbc7c4b943
commit
7a821b482f
|
|
@ -0,0 +1,12 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int main(int argc ,char *argv[]){
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 0; i < argc; i++) {
|
||||||
|
printf("%d, %s \n",i,argv[i]);
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
pid_t id_actual, id_padre, pid;
|
||||||
|
|
||||||
|
pid = fork();
|
||||||
|
|
||||||
|
if (pid == -1) { // Hubo error
|
||||||
|
printf("Hubo un problema de impotencia al crear el hijo");
|
||||||
|
exit(-1); }
|
||||||
|
// Si todo va bien y se crea el hijo tenemos que hacer
|
||||||
|
// que el programa ejecute un código con distinto para cada
|
||||||
|
// proceso
|
||||||
|
if (pid == 0) { // Nos encontramos en el hijo
|
||||||
|
printf ("Soy el proceso hijo\n\t");
|
||||||
|
printf(" Mi PID es %d, y el mi papa %d\n",getpid(),getppid());
|
||||||
|
} else { // Nos encontramos en el padre
|
||||||
|
printf("Yo soy el padre de la criatura:\n\t");
|
||||||
|
printf("Mi PID es %d, el de mi padre (abuelo de la criatura) es %d.\n\t",
|
||||||
|
getpid(),getppid());
|
||||||
|
printf("Mi hijo si es de verdad hijo mio deberia tener el PID %d.\n",pid);
|
||||||
|
wait(NULL); // Espera a que termine el hijo
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
pid_t id_actual, id_padre, pid;
|
||||||
|
|
||||||
|
pid = fork();
|
||||||
|
|
||||||
|
if (pid == -1) { // Hubo error
|
||||||
|
printf("Hubo un problema de impotencia al crear el hijo");
|
||||||
|
exit(-1); }
|
||||||
|
// Si todo va bien y se crea el hijo tenemos que hacer
|
||||||
|
// que el programa ejecute un código con distinto para cada
|
||||||
|
// proceso
|
||||||
|
if (pid == 0) { // Nos encontramos en el hijo
|
||||||
|
printf ("Soy el proceso hijo\n\t");
|
||||||
|
printf(" Mi PID es %d, y el mi papa %d\n",getpid(),getppid());
|
||||||
|
} else { // Nos encontramos en el padre
|
||||||
|
id_actual = wait(NULL);
|
||||||
|
printf("Yo soy el padre de la criatura:\n\t");
|
||||||
|
printf("Mi PID es %d, el de mi padre (abuelo de la criatura) es %d.\n\t",
|
||||||
|
getpid(),getppid());
|
||||||
|
printf("Mi hijo si es de verdad hijo mio deberia tener el PID %d.\n",pid);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
pid_t pid, Hijo_pid, pid2, Hijo2_pid, id_actual;
|
||||||
|
|
||||||
|
pid = fork(); // Soy el abuelo e intento crear a mi hijo
|
||||||
|
|
||||||
|
if (pid == -1) { // Hubo error
|
||||||
|
printf("Hubo un problema de impotencia al crear el hijo\n");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pid == 0) {
|
||||||
|
// Nos encontramos en el hijo
|
||||||
|
pid2 = fork(); // soy el hijo y creo al nieto
|
||||||
|
|
||||||
|
switch(pid2) {
|
||||||
|
case -1: // error
|
||||||
|
printf("No se ha podido crear el proceso nieto en el hijo\n");
|
||||||
|
exit(-1);
|
||||||
|
break;
|
||||||
|
case 0: // Estoy en el nieto
|
||||||
|
printf("\t\tSoy el proceso NIETO %d, Mi padre es = %d\n",
|
||||||
|
getpid(), getppid());
|
||||||
|
break;
|
||||||
|
default: // proceso padre (hijo)
|
||||||
|
Hijo2_pid = wait(NULL); // espero a que termine nieto, que es mi hijo
|
||||||
|
printf("\t\tSoy el proceso HIJO %d, Mi padre es = %d\n",
|
||||||
|
getpid(), getppid());
|
||||||
|
printf("\tMi hijo: %d terminó.\n", Hijo2_pid);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Nos encontramos en el abuelo
|
||||||
|
id_actual = wait(NULL); // Espero a que termine mi hijo, que a su vez espera que termine el nieto
|
||||||
|
printf("Yo soy el abuelo de las dos criaturas anteriores:\n\t");
|
||||||
|
printf("Mi PID es %d, el de mi padre (Sistema Operativo) es %d.\n\t", getpid(), getppid());
|
||||||
|
printf("Mi hijo si es de verdad hijo mio deberia tener el PID %d.\n", pid);
|
||||||
|
printf("A mi nieto no lo puedo conocer, solo reconozco a mi generación inmediata\n");
|
||||||
|
printf("Para conocer a mi NIETO debería implementar algún sistema de comunicación entre procesos.\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
pid_t id_actual, id_padre;
|
||||||
|
id_actual = getpid();
|
||||||
|
id_padre = getppid();
|
||||||
|
|
||||||
|
printf("Mi PID es: %d\n", id_actual);
|
||||||
|
printf("El PID de mi papa es: %d\n", id_padre);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
int main() {
|
||||||
|
printf("Ejemplo de uso de system():");
|
||||||
|
printf("\n\tListado del directorio actual y envio a un fichero:");
|
||||||
|
printf("%d",system("ls > ficherosalida.txt"));
|
||||||
|
printf("\n\tAbrimos con nano el fichero ...");
|
||||||
|
printf("%d",system("nano ficherosalida.txt"));
|
||||||
|
printf("\n\tEste comando es erroneo: %d",system("msword"));
|
||||||
|
printf("\nFin del programa");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
int main() {
|
||||||
|
printf("Ejemplo de uso de excel():");
|
||||||
|
printf("\n\tListado del directorio actual:");
|
||||||
|
execl("/bin/ls","ls","-l", (char *)NULL);
|
||||||
|
printf("\nEsta instrucción no se llega a ejecutar");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,29 @@
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int var = 6; // Variable entera inicializada a 6
|
||||||
|
pid_t pid = fork(); // Crear un nuevo proceso
|
||||||
|
|
||||||
|
if (pid < 0) {
|
||||||
|
// Error al crear el proceso
|
||||||
|
perror("Fork failed");
|
||||||
|
exit(1);
|
||||||
|
} else if (pid == 0) {
|
||||||
|
// Proceso hijo
|
||||||
|
var -= 5; // Restar 5 a la variable
|
||||||
|
printf("Proceso hijo: var = %d\n", var);
|
||||||
|
} else {
|
||||||
|
// Proceso padre
|
||||||
|
wait(NULL); // Esperar a que el hijo termine
|
||||||
|
var += 5; // Incrementar la variable en 5
|
||||||
|
printf("Proceso padre: var = %d\n", var);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
18
C/zombies.c
18
C/zombies.c
|
|
@ -0,0 +1,18 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
pid_t pid= fork();
|
||||||
|
|
||||||
|
if (pid<0){
|
||||||
|
perror("fork");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue