O_WRONLY|O_CREAT
, O_WRONLY|O_CREAT|O_CREAT
, O_WRONLY+O_CREAT
et O_WRONLY+O_CREAT+O_CREAT
?if (c=0) {...} else {...}
(en particulier de l'expression de test) ?
a=f()==0
, combien vaut a
après, et quelle est la valeur de l'expression ?
int *p, *q
, en supposant que p
est égal à 0x120560 et que q
est égal à 0x120580, sachant que q-p
vaut 8, que vaut l'expression p+02
?
Unix
font pour «détecter» la «fin de fichier» lors d'une opération de lecture.
while (...) { ... lseek(d,SEEK_END,(off_t)0); write(d,&s,sizeof(s)); ... }On supposera que le descripteur
d
est ouvert correctement et que s
désigne une variable de type quelconque.
while (...) { ... lseek(d,SEEK_END,(off_t)0); write(d,s,strlen(s)+1); ... }On supposera que le descripteur
d
est ouvert correctement, que s
désigne un pointeur sur char
et que ce pointeur est régulièrement modifié (mais désigne toujours une chaîne de caractère à la C) dans la boucle.
while
afin de réaliser effectivement ce que l'on cherche visiblement à faire ?
d1 = open("f",O_RDWR); d2 = open("f",O_WRONLY); d3 = dup(d1); for (i=0; i<5; i++) { lseek(d1,(off_t)0,SEEK_CUR); lseek(d2,(off_t)3,SEEK_CUR); lseek(d3,(off_t)6,SEEK_CUR); write(d1,"abc",3); write(d2,"ABC",3); write(d3,"def",3); } close(d1); close(d2); close(d3);
f
après l'exécution du code précédent ? On supposera que les conditions de bon fonctionnement des différentes fonctions appelées sont toutes réunies.
lance
lpd
chargée de simuler le démon d'impression d'un système. Cette commande lira dans tube nommé (de nom /tmp/printer0
) la référence d'un fichier (sous la forme d'une simple chaîne de caractère) à imprimer, recopiera alors le contenu du fichier correspondant dans un périphérique (de nom /dev/lp0
) puis recommencera. On fera ce qu'il faut pour qu'en cas d'existence d'un exemplaire de ce démon, toute tentative de lancement de l'exécution d'un autre provoque la terminaison immédiate du second.
/tmp/printer0
et /dev/lp0
de sorte que personne ne puisse écrire directement sur l'imprimante, personne d'autre que la commande lpd
ne puisse extraire les requêtes et que ce démon puisse lire effectivement les fichiers correspondant aux requêtes ?
lpr
chargée de simuler la commande de requête d'impression d'un système. Cette commande prendra en paramètre la référence d'un fichier et écrira la référence absolue correspondante dans le tube correspondant du démon lpd
.
/dev/printer0
sur /dev/lp0
, et ceux de /dev/printer1
sur /dev/lp1
. Quels problèmes cela pose t-il ? Quelle(s) solution(s) entrevoyez-vous ?