Resultat de programme

Fermé
sousou - 15 mai 2012 à 00:11
mamiemando Messages postés 33442 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 décembre 2024 - 15 mai 2012 à 09:50
svp aidé moi quesque ses programme ns donne ???les resultats une conclusion ??

#include <stdio.h>
#include <sys/types.h>
#include <sys/times.h>
char buf[1024]; /* pour récupérer le répertoire de travail */
struct tms temps; /* pour récupérer les nombres de clics */
main(){ int i;
nice(10);/* augmentation de 10 de la valeur du nice avant le fork*/
for (i=0;i<10000000;i++); /* une boucle consommatrice de CPU */
if (fork()==0) {printf("caractéristiques du fils \n ");
printf("uid=%d euid= %d egid=%d\n ", getuid(),geteuid(),getegid());
printf(" répertoire de travail : %s\n ",getcwd(buf,1024));
printf("nice : %d \n",nice(0)+20);
times(&temps);
printf("clics en mode utilisateur : %d \n", temps.tms_utime);
printf("clics en mode système : %d \n\n ", temps.tms_stime);}
else{ sleep(5); /* pour partir après la terminaison du fils */
printf("caractéristiques du père \n ");
printf("uid=%d euid= %d egid=%d\n ",getuid(),geteuid(),getegid());
printf(" répertoire de travail : %s\n ",getcwd(buf,1024));
printf("nice : %d \n",nice(0)+20);
times(&temps);
printf("clics en mode utilisateur : %d \n", temps.tms_utime);
printf("clics en mode système : %d \n\n ", temps.tms_stime);}}
programme 2:

#include <sys/times.h>
int n=1000;
main(){int m=1000, pid;
printf("Adresse de n dans le père: %p\n ", ?n);
printf("Adresse de m dans le père: %p\n ", ?m);
printf("1 valeur de m et n dans le père : %d %d\n ", m, n);
switch(pid=fork()){
case -1: perror("fork");exit(2);
case 0 : /* on est dans le processus fils*/
printf("Adresse de n dans le fils: %p\n ", ?n);
printf("Adresse de m dans le fils: %p\n ", ?m);
printf("2 valeur de m et n dans le fils : %d %d\n ", m, n);
m*=2;n*=2;
printf("3 valeur de m et n dans le fils : %d %d\n ", m, n);
sleep(3);
printf("6 valeur de m et n dans le fils : %d %d\n ", m, n);exit(0);
default: /*on est dans le processus père*/
sleep(2);
printf("4 valeur de m et n dans le père : %d %d\n ", m, n);
m*=3;n=*3;
printf("5 valeur de m et n dans le père : %d %d\n ", m, n);
sleep(2);
exit(0);}}
programme 3:

#include <stdio.h>
#include <sys/times.h>
main(){ if (fork()==0) {printf("fin du processus fils de numéro %d \n ", getpid());
exit(2); }
sleep(3);}
A voir également:

1 réponse

mamiemando Messages postés 33442 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 décembre 2024 7 810
15 mai 2012 à 09:50
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/

Pourquoi n'installes-tu pas simplement linux et gcc (par exemple dans virtualbox) pour tester par toi-même ?
Tu peux aussi regarder dans google la signification de chaque fonction (par exemple fork) en cherchant la page de manuel correspondant (en cherchant "man fork", qui te mènera à ce genre de page : http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/fork.2.html )

Accessoirement une fonction en C attend un type de retour (int dans le cas d'un main correctement écrit, sachant que main est sensé retourner 0 quand tout va bien).

int main() {
  if (fork()==0) {
    printf("fin du processus fils de numéro %d \n ", getpid()); 
    exit(2);
  }
  sleep(3);
  return 0;
}


Bonne chance
0