Remove unnecessary comment from variables.c

This commit is contained in:
Javier 2025-10-10 14:04:12 +02:00
parent bbc7c4b943
commit 7a821b482f
10 changed files with 198 additions and 0 deletions

12
C/args.c Normal file
View File

@ -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;
}

27
C/fork.c Normal file
View File

@ -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;
}

29
C/fork2.c Normal file
View File

@ -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;
}

47
C/fork3.c Normal file
View File

@ -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;
}

13
C/pid.c Normal file
View File

@ -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;
}

14
C/proceso1.c Normal file
View File

@ -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;
}

9
C/proceso2.c Normal file
View File

@ -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;
}

BIN
C/variables Executable file

Binary file not shown.

View File

@ -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;
}

View File

@ -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;
}
}