Académique Documents
Professionnel Documents
Culture Documents
/* Modelo 1 */
/ PADRE /
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <wait.h>
#include <fcntl.h>
unlink(argv[1]);
/ HIJO /
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
if(argc != 2){
printf("Error en la linea de ordenes\n");
return EXIT_FAILURE;
}
c = argv[2][0];
printf("Caracter %c\n",c);
/* Modelo 2 */
/ PADRE /
void finalizarProcesos();
pid_t pids[MAXHIJOS];
int fd;
int n;
char buffer[MAXBUFFER];
int c;
int numerohijos;
int i,j;
int pid;
if((fd = mkfifo(argv[1],0644))!=0){
fprintf(stderr, "Error en la creacion de la tuberia\n");
return EXIT_FAILURE;
}//if
numerohijos = argc - 2;
for(i = 0; i <numerohijos;i++){
if(pids[i]!=0){
if(kill(pids[i],SIGINT) == -1){
fprintf(stderr, "Error al enviar la seal\n");
}//if2
else{
void finalizarProcesos(void){
int i;
/ HIJO /
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
#include <string.h>
#include <wait.h>
int fd;
int pid;
int i;
char n;
if(argc != 3){
fprintf(stderr, "Error en la linea de argumentos132151\n");
return EXIT_FAILURE;
}//if
n = argv[2][0];
/* Modelo 3 */
/ PADRE /
#include <sys/types.h>
#include <sys/stat.h>
#include <signal.h>
#include <wait.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
if(argc<2){
fprintf(stderr, "Error en la linea de ordenes\n");
return EXIT_FAILURE;
}
/* Modelo 4 */
/ PADRE /
void FinalizarProcesos();
/ HIJO /
return EXIT_SUCCESS;
}