Systèmes d'exploitation

Disussions liées au livre Systèmes d'exploitation paru chez Pearson Education France.

Vous n'êtes pas identifié.

Annonce

Suite à des abus constatés et provoqués par des connexions de "robots", l'enregistrement de nouveaux utilisateurs est temporairement suspendu. Merci de contacter l'administrateur du site pour s'abonner au forum.


#1 12-08-2008 18:13:51

nordmanb
New member
Date d'inscription: 12-08-2008
Messages: 6

Exercice 3 [Problème de passage de paramètres]

Bonjour à vous.

Je n'ai pas saisi pourquoi, page 107, la fonction write() prends en paramètre l'adresse et non pas le contenu de sem[1]
On voit ainsi noté

write(*sem[1],&buf,1), où sem est un tableau de deux cases.

Ce qui ne me semble pas correct, puisque write est censé écrire dans la case à l'adresse pointée par sem et non pas à l'adresse du pointeur.

Pourriez vous m'expliquer où j'aurai pu me tromper dans mon raisonnement?
Merci!

Hors ligne

 

#2 12-08-2008 23:34:26

BartLamiroy
Auteur
Lieu: Nancy
Date d'inscription: 04-12-2006
Messages: 24
Site web

Re: Exercice 3 [Problème de passage de paramètres]

Bonjour,

Prenons les choses dans l'ordre.
1. la variable sem est de type 'semaphore *'.
2. le type semaphore est défini par le typedef comme un int[2].
3. Par conséquent, *sem[1] est un entier (le contenu de la deuxième case du tableau pointé par sem)

Si vous faites un 'man write' vous verrez que le premier argument de write est un entier, correspondant au descripteur de fichier dans lequel la fonction doit écrire. Dans notre exemple, c'est l'appel à 'pipe' dans 'sem_init' qui a renseigné le tableau pointé par 'sem' avec les descripteurs de fichiers adéquats.

Ce vous dites est donc faux, lorsque vous supposez que "write est censé écrire dans la case à l'adresse pointée par sem". Write est censé écrire dans le descripteur de fichier contenu dans la case du tableau pointé par sem.

Je peux comprendre que l'explication est un peu difficile à comprendre, mais c'est bien comme ça que cela se passe.

Hors ligne

 

#3 13-08-2008 09:59:35

nordmanb
New member
Date d'inscription: 12-08-2008
Messages: 6

Re: Exercice 3 [Problème de passage de paramètres]

Je crois comprendre ce que vous voulez dire.
Est-ce que, si l'on avait pris semaphore sem, nous aurions uniquement eu à mettre dans le write sem[1] ?

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson