Bonjour,
Pour la préparation de mon examen de Systèmes, je suis en train de préparer quelques réponses a certaines questions et je voulais avoir votre avis sur celles-ci. Est-ce que vous ne voyez pas d'abbération? Est-ce qu'il y'a des réponses que je peux compléter (je pense notamment à la première) ?
Décrivez les avantages des appels systèmes et des fonctions de bibliothèques
Appels Système
- Plus rapide, moins gourmands en mémoire donc plus efficace
Fonctions de bibliothèque
- Lecture et écriture formatée
- Portabilité d'un système Unix a un autreQuels sont les différences entre lien symbolique et lien physique?
Un lien symbolique est un fichier qui pointe sur un autre fichier.
Un lien physique est un fichier qui occupe exactement le même espace disque que le fichier vers lequel il pointe.
Avec un lien physique, si on efface le fichier cible, il continuera d'exister. Alors que si l'ont fait la même choses avec les liens symboliques, ils pointeraient dans le vide.
Autre différence: un lien symbolique peut pointer vers un autre système de fichiers ou partition, ce qui n'est pas le cas des liens physiques.Peut-on se déplacer (lseek ou fseek) dans tous les fichiers?
Non, on ne peut se déplacer sur un fichier que si il a été ouvert (open) au préalable.
Si on considère un tube comme un fichier, on ne peut pas se déplacer sur ce dernier.Pour finir, j'ai une question pratique, je fais souvent des tests pour voir si l'utilisateur a passé le bon nombre d'argument a mon programme ou bien pour voir si des appels noyaux se sont bien déroulés.Que permet un tube nommé que ne permet pas un tube simple?
Avec un tube simple, il faut obligatoirement que les processus connaissent le processus qui a créé le tube.
Alors que les tubes nommés disposent d'un nom dans le SGF, il suffit qu'un processus appelle un tube par son nom pour lire ou écrire sur ce dernier.
Par exemple,
ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (argc != 2) { perror("Mauvais nombre d'arguments"); return; }
Quelle est la meilleure solution: utiliser perror ou bien fprintf(stderr, ...) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (pipe(tube) == -1) { fprintf(stderr, "Problème de pipe"); exit(1); }
Et enfin dans quel cas utiliser return ou bien exit() ?
Partager