- Solution du paragraphe Remarque 3
- Mettre par exemple dans le fichier essai:
- exit 12
- exit
- Mettre dans le fichier essai
- echo $1 en sachant qu'il suffit de l'appeler par essai <chaine de caractères>
- $ ls -l | wc -l équivalente à: $ ls -l > fichier $wc -l < fichier
- Réalise la décomposition en facteurs premiers du nombre passé en paramètre.
- Interpréter tout le fichier en le passant à bc parcat fonctions | bc -l
- read ligne while test $? -eq 0 do echo $ligne read ligne done
- for i in '#' '$' '&' '(' '-' ';' '>' '<' '[' ']' do date >${i}foo done
- Une solution parmi d'autres : taper dans le fichier essai:
- echo $1 if test $1 -eq 0 then echo fini else let temp=$1-1 essai $temp fi
- L'énoncé ne stipule pas que le script de la factorielle doit être récursif, cela tombe bien car ça ne me semble pas évident à réaliser a priori.Solution:
- let n=$1 let res=1 while test $n -ne 1 do let res=res*n let n=$n-1 done echo $res
- expr $1 + 0 1>/dev/null 2>/dev/null if test $? -eq 0 then echo Ok else echo erreur fi
- #include <stdio.h>/* écho de la ligne des arguments de le la ligne de commande */ main(int argc, char *argv[]) { int i; if (argc == 1) printf("pourriez-vous me donner quelques paramètres s.v.p ?!?\n"); else for (i=1; i<argc; i++) printf("%s%s",argv[i],(i<argc-1) ? " " : ""); printf("\n"); return 0; }
- #include <signal.h>void Traite_Sig (int Numero) { printf("Coucou, recu signal %d ! mais je l'ignore !\n", Numero); signal (Numero,Traite_Sig); /* !!!!!!!!! */ } main() { int Nb_Sig ; for (Nb_Sig = 1; Nb_Sig < NSIG ; Nb_Sig ++) { signal (Nb_Sig,Traite_Sig); } while(1); /* Attendre des signaux */ }
- Exercice 1#include <signal.h> #include <stdio.h> #include <unistd.h> /* pour la fonction alarm */ int nombre; void traite_alarme() { nombre=100; printf("Le nombre entré vaut:%d\n",nombre); printf("Veuillez entrer un AUTRE nombre:"); scanf ("%d",&nombre); printf("Le NOUVEAU nombre entré vaut:%d\n",nombre); } main() { alarm(3); signal(SIGALRM,traite_alarme); printf("Veuillez entrer un nombre:"); scanf ("%d",&nombre); printf("Le nombre entré vaut:%d\n",nombre); } Exercice 2 #include <signal.h> #include <stdio.h> #include <unistd.h> /* pour la fonction alarm */ int i='a'; int j; void traite_alarme() { printf("caractère suivant: %c \n",i); i++; signal(SIGALRM,traite_alarme); if (i<='z') alarm(1); else exit(0); } main() { signal(SIGALRM,traite_alarme); alarm(1); while (1); }
- Il suffit de rajouter la commande sleep 1 par exemple juste avant la
- case (pid_t)0: /* on est dans le processus fils */ printf("valeur de fork =%d ",pid); printf("je suis le processus %d de père %d ",getpid(), getppid()); sleep 1 printf("fin du processus fils"); exit(0);
- #include <stdlib.h> #include <stdio.h> main() { pid_t pid; int status; switch(pid=fork()){ case (pid_t)-1: perror("Création de processus"); exit(2); case (pid_t)0: /* on est dans le processus fils */ printf("valeur de fork =%d ",pid); printf("je suis le processus %d de père %d ",getpid(), getppid()); sleep (1); printf("fin du processus fils"); exit(0); default: /* on est dans le processus père */ printf("valeur de fork = %d ",pid); printf("je suis le processus %d de père %d",getpid(), getppid()); wait(&status); printf("fin du processus père"); } }
- #include <stdio.h> #include <unistd.h> #include <signal.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>main() { pid_t pid; int status; switch(pid=fork()){ case -1: perror("Création de processus"); exit(2); break; case 0: /* processus fils bouclant*/ while (1); break; default: /* on est dans le processus père */ sleep(5); if (kill(pid,0)==-1) printf ("FILS %d inexistant\n",pid); else { printf (" envoi de SIGUSR1 au processus %d\n",pid); kill(pid,SIGUSR1); } } }
- 1. [a-zA-Z0-9] 2. [ a-zA-Z0-9] 3. [a-z]*$ 4. [0-9]+$
- Exercice de substition de ``Z'' en ``a'': { gsub("Z","a",$0); print $0 }Exercice 1: BEGIN { print "Voici toutes les lignes qui contiennent la chaîne BO" } /BO/ { print FILENAME , FNR , $0 } Exercice 2: { print NR, $0 } Exercice 3: /.*[Ee].*1/ { print FILENAME , FNR , $0 } END { print "Vous avez vu les lignes qui contiennent un e " print "puis des caractères quelconques puis un 1 " }
0 commentaires:
Enregistrer un commentaire