Escolar Documentos
Profissional Documentos
Cultura Documentos
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
#include <string.h>
int main()
{
char var[20];
int x;
printf("\nIniciando....\n");
while(1)
{
printf("\nEl hijo realiza lo siguiente\n");
printf("\nEl comando a ejecutar: ");
scanf("%s",var);
if(0==strcmp(var,"salir"))
{
printf("\n");
exit(0);
}
x=fork();
if(x==0)
{
sleep(1);
execlp(var,var,NULL);
exit(0);
}
else
{
wait(NULL);
printf("\nHola soy el padre\n");
printf("Saliendo....\n");
}
}
La ejecucin del programa lo podemos ver en la siguiente captura.
#include<stdio.h>
#include<sys/types.h>
int main()
{
int n,ID;
n=fork();
if(n==0)
{
printf("\nSOY EL HIJO\n");
ID = getpid();
printf("\nID del Hijo:%d\n",ID);
sleep(3);
}
else
{
wait(NULL);
printf("\nSOY EL PADRE\n");
ID = getpid();
printf("\nID del Padre: %d\n",ID);
}
}
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
int main()
if(fork()==0)
{
if(execlp("wc", "wc","-l","arch1",NULL) == -1)
perror("");
exit(0);
}
else
{
wait(NULL);
puts("Fin del programa");
}
return 0;
El archivo llamado arch1 contiene lo siguiente:
#include<stdio.h>
#include<sys/types.h>
int main()
{
int n,estado,p;
pid_t id2;
pid_t id1;
n=fork();
if(n==0)
{
printf("\nEL PROCESO HIJO\n");
id2 = getppid();
printf("\nEl PPID del Hijo es:%d\n",id2);
}
else
{
p=wait(&estado);
printf("\nEL PROCESO PADRE\n");
id1= getpid();
printf("\nMi PID del Padre es: %d\n",id1);
id2=getpid();
printf("El PID del Hijo es: %d\n",p);
}
return 0;
}
#include <stdio.h>
int main(int argc, char *argv[]) {
int i = 0;
for (i = 0; i < argc; i++) printf(``\nArgumento [%d]: %s'', i, argv[i]);
exit(0); }
El programa es el siguiente
#include<stdio.h>
#include<sys/wait.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
void main(int argc, char **argv)
{
int n;
n=fork( );
if(n = = 0)
{
char *var[3];
args[0]=PROG
args[1]=-b;
args[2]= NULL;
execvp(var[0], var);
}
else
{
wait(NULL);
}
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
int main()
{
int ID;
if(fork()==0)
{
execv("/bin/date",0);
}
sleep(2);
if(fork()==0)
{
execlp("./arch2","arch2",0);
}
sleep(2);
ID=getpid();
printf("FIN ..... Soy el padre mi PID es %d\n",ID);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
int main()
{
int n,v=0,id1,id2;
while (v<=5)
{
n=fork();
if(n==0)
{
printf("\nHijo %d creado\n",v);
id1=getpid();
printf("\nEl PID es: %d",id1);
id2=getppid();
printf("\nEl PPID es: %d",id2);
printf("\nEl UID es: %d",getuid());
printf("\nEl GID es: %d",getgid());
}
else
{
wait(NULL);
printf("Padre\n");
}
v++;
}
return 0;
}