rm -f `find $1

Anuncio
Sergio Silva
P1
#! /bin/bash
rm -f `find $1 -name *.o | awk '{print "\""$ $1"\""}'`
rm -f `find $1 -name *.class | awk '{print "\""$ $1"\""}'`
/* Es la idea, pero no funciona.
Algo ocurre con la expansión que se hace antes de ejecutar rm.
25/25
P2
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
void muda(int i){
sleep(2);
printf("\nLlego Control-C,\n");
exit(0);
}
int main(){
signal(SIGINT, muda);
for(;;){}
return 0;
}
/* Usted hace espera activa */
24/25
P3
#include <unistd.h>
#include <stdio.h>
char string[]=" "; // Muy chico, pudo usar string[100]
int fd1[2];
void procesohijo(){//calcula
dup2(fd1[0],0);
close(fd1[1]);
execlp("bc","bc",NULL);
}
int main(){
if(-1 == pipe(fd1))
error("pipe error 1", 1);
if(fork()==0){
procesohijo();
}
else{//padre recibe datos de teclado y envia a hijo
dup2(fd1[1],1);
close(fd1[0]);
do{
scanf("%s",&string); /* sin & por ser string */
printf("%s\n",string);
fflush(stdout);
}while(string!="quit\n"); /* Así no se comparan strings */
}
return 0;
}
21/25
P4
#include <unistd.h>
#include <stdio.h>
#include <pthread.h>
#define CANT 2000000
int mode;
int contador=0;
int retornado;
pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;
void *funcionhilo(void *parametro) // no calcula máx
{
int j=0;
while(j<CANT)
{
if(mode==1)pthread_mutex_lock(&mutex);
contador++;
if(mode==1)pthread_mutex_unlock(&mutex);
j++;
}
retornado=contador;
}
int main(int argc, char *argv[]){
if(argc>2){
printf("Cantidad de argumentos invalida.\n");
exit(1);
}
mode=atoi(argv[1]);
pthread_t idhebra;
pthread_create(&idhebra, NULL, funcionhilo, NULL);
int i=0;
while(i<CANT)
{
if(mode==1)pthread_mutex_lock(&mutex);
contador--;
if(mode==1)pthread_mutex_unlock(&mutex);
i++;
}
pthread_join(idhebra, NULL);
printf("valor retornado: %d, valor variable: %d\n", retornado, contador);
return 0;
}
23/25
Descargar