Oscar Núñez P1 #!/bin/bash dir=$1 dir=${dir:?'primer argumento "directorio", no suministrado'} for i in *.o do if test -f "$i" then rm "$i" fi done for i in *.class do if test -f "$i" then rm "$i" fi done /*Bien, pero no navega subdirectorios. Equivale a rm *.o *.class */ 18/25 P2 #include <stdlib.h> #include <stdio.h> #include <signal.h> void senal(int signo) { sleep(2); if (signo == SIGINT) printf("\nLLego Control-C.\n"); exit(0); } int main(void) { signal(SIGINT, senal); signal(SIGUSR1, SIG_IGN); for ( ; ; ) pause(); } /* Sleep debió estar dentro del if. */ 25/25 P3 #include <sys/types.h> #include <unistd.h> #include <stdio.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #define MAXL 1024 int main(void) { pid_t pid; int pfd[2], status; FILE * sd; char aux[MAXL]; char *aux2=["quit"]; // Los corquetes está de más if (pipe(pfd) < 0) { perror("pipe"); exit(1); } // Dónde está el fork ? if (pid == 0) { /* * Attach standard input of this child process to read from the pipe. */ dup2(pfd[0], 0); close(pfd[1]); execl("/usr/bin/bc", "bc",0); perror("exec"); exit(-1); } close(pfd[0]); gets(aux); if(strcmp(aux,aux2)==0) fprintf(sd, "quit\n"); // sd no asignado fprintf(sd, "%s", aux); // falta retorno de carro. Sólo funciona con una expresión. waitpid(pid, &status, 0); close(pfd[0]); fclose(sd); exit(0); } 13/25 P4 No responde 0/25