Partiel de Systèmes - M1 - 2008-2009
Nom:
Prénom:
N^ étudiant:
Rappel: un tube anonyme est obtenu par appel à int pipe(int d[2]); où d est le tableau des deux descripteurs de lecture et d'écriture dans le tube ([0] pour la lecture et [1] pour l'écriture).
void total(int s) { int total=0, depot; for (int i=0; i<NCLIENTS; i++) { lseek(comptes,i*sizeof(int),SEEK_SET); read(comptes,&depot,sizeof(depot)); total += depot; } printf("Nous avons: %d euros sur nos comptes de dépôt\n",total); } void virement(int s) { int depot1, depot2; // lecture du i-ième entier du fichier lseek(comptes,client1*sizeof(int),SEEK_SET); read(comptes,&depot1,sizeof(int)); // lecture du i-ième entier du fichier lseek(comptes,client2*sizeof(int),SEEK_SET); read(comptes,&depot2,sizeof(int)); // allez on transfère les sommes... depot1 -= somme; depot2 += somme; // écriture du i-ième entier du fichier lseek(comptes,client1*sizeof(int),SEEK_SET); write(comptes,&depot1,sizeof(int)); // écriture du i-ième entier du fichier lseek(comptes,client2*sizeof(int),SEEK_SET); write(comptes,&depot2,sizeof(int)); }Ces deux fonctions sont implantées dans le même programme permettant de simuler les services d'une banque.