Oscar Núñez P1 #!/bin/bash dir=$1 dir=${dir:?`primer argumento

Anuncio
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
Descargar