SlideShare une entreprise Scribd logo
1  sur  22
Systèmes
d'exploitation
Fonctions d'entrée et
sortie
Bibliographie pour aujourd'hui
• Modern Operating Systems
– Chapitre 6
• 6.1
• 6.2
• Operating Systems Concepts
– Chapitre 11
2
UNIX
3
Operations avec les fichiers
• création
• ouverture
• lecture
• écriture
• positionnement dans le fichier
• tronquer
• fermeture
• suppression
4
Creation
• shell
touch /path/to/file
toute commande qui écrit dans un fichier le crée
• ISO/ANSI C
FILE *f = fopen ("/path/to/file", "rw");
• POSIX
int fd = open ("/path/to/file", O_CREAT | O_EXCL, 0644);
• Windows
HANDLE fileHandle = CreateFile ("/path/to/file", ...,
CREATE_NEW);
5
Ouverture
• ISO/ANSI C
FILE *f = fopen("/path/to/file", "rt");
• POSIX
int fd = open("/path/to/file", O_RDONLY);
• Windows
HANDLE f = CreateFile("/path/to/file", ...,
OPEN_EXISTING);
6
Descripteur de fichier
• plus de descripteur peut correspondre aux même fichier
• chaque processus a une table de descripteurs de fichiers
• POSIX
– un entier identifiant une instance de fichier ouvert dans un
processus
– descripteurs spéciaux
• 0 (stdin), 1 (stdout), 2 (stderr)
• ISC C
– File
• Windows
– HANDLE
7
Table de descripteur de fichier
8
Lecture
• stocker des informations dans un tampon
• avance du curseur de fichier
• ISO C
// reads size * times bytes
n_items = fread(buffer, size, items, f);
• Unix
// reads maximum size bytes
// use only within a loop
n_read = read(fd, buffer, size);
• Windows
ReadFile(fHandle, buffer, bytesToRead,
&bytesRead, NULL);
9
Ecriture
• écrire des informations à partir d'un tampon
• avance du curseur de fichier
• ISO C
// writes size * times bytes
n_items = fwrite(buffer, size, items, f);
• Unix
// writes maximum size bytes
// use only within a loop
n_write = write(fd, buffer, size);
• Windows
WriteFile(fHandle, buffer, bytesToWrite,
&bytesWritten, NULL);
10
Curseur de fichier
• changements à lire et à écrire
• initialisation à l'ouverture
• mouvement de curseur de fichier
• ISO C
fseek(f, offset, SEEK_SET);
• Unix
lseek(fd, offset, SEEK_SET);
• Windows
SetFilePointer(fHandle, distanceToMove,
NULL, FILE_BEGIN);
11
Espace
utilisateur
Espace noyau
Fichier sur le discinstance de fichier ouvert
struct file
Pointeur
fichier
utilisateur
droits
inode
struct
inode
droits
taille
bloc
pointeurs
uid
gid
Fichier ouverte
descripteur
Types des donnees
12
Duplication de descripteur
• dupliquer un descripteur dans un autre descripteur
• les deux descripteurs fonctionnent sur le même fichier
• POSIX
newfd = dup(oldfd);
dup2(oldfd, newfd);
• Windows
DuplicateHandle(...);
SetStdHandle(...);
13
Tronquer
• supprimer le contenu du fichier
• le curseur de fichier est mis à size
• un fichier peut être ouvert et tronqué
// size is 0
open("/path/to/file", O_RDWR | O_TRUNC);
• un fichier peut être ouvert et tronqué
truncate("/path/to/file", size);
• un fichier peut être tronqué après ouverture
ftruncate(fd, size);
SetEndOfFile(hFile); // Windows
14
Fermer
• l'entrée de la table de descripteur est supprimée
• ISO C
fclose (f);
• POSIX
close(fd);
• Windows
CloseHandle(fHandle);
15
Supprimer
• supprimer le fichier du système de fichiers
• shell
rm file.txt
• ISO/C
remove("file.txt");
• POSIX
unlink("file.txt");
• Windows
DeleteFile("file.txt");
16
Redirection
• shell
echo “message” > file_out.txt
grep “word” < file_in.txt
• POSIX
fd = open ("file_out");
close (1);
dup2 (fd, 1);
close (fd);
17
NULL
stdout stdout
file.txt
stdout
file.txt
stdoutNULL
file.txt
stdout
NULL
file.txt
open(“file.txt”) close(1); dup2(fd, 1) close(fd)
Redirection
18
UNIX
19
UNIX
• Sur bits:
– r w - r- - r - - corresponde a 110100100
– r w x r- x - - - corresponde a 111101000
– r w - rw- - - - corresponde a 110110000
• Octal:
– r w - r- - r - - corresponde a 644
– r w x r- x - - - corresponde a 750
– r w - rw- - - - corresponde a 660
20
Gestion de permissions
• UNIX:
– Entités: User, Group, Others
– Types: Read, Write, Execute
// mode in octal
chmod("/path/to/file", 0644);
• Windows: Listes d’acces
– ACL: access control lists
– Types: lecture, écriture, listage, croisement, création de sous-fichiers,
etc.
– Permissions seulement sur NTFS, pas sur FAT32
SetNamedSecurityInfo(...);
21
Questions
22

Contenu connexe

Tendances

الأوامر في لينكس
الأوامر في لينكسالأوامر في لينكس
الأوامر في لينكس
meo000
 

Tendances (20)

Systemes d'explotation: Threads
Systemes d'explotation: ThreadsSystemes d'explotation: Threads
Systemes d'explotation: Threads
 
SdE2 4 - Processus
SdE2 4 - ProcessusSdE2 4 - Processus
SdE2 4 - Processus
 
SdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la MémoireSdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la Mémoire
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoire
 
SdE 8 - Memoire Virtuelle
SdE 8 - Memoire VirtuelleSdE 8 - Memoire Virtuelle
SdE 8 - Memoire Virtuelle
 
SdE 7 - Memoire Virtuelle
SdE 7 - Memoire VirtuelleSdE 7 - Memoire Virtuelle
SdE 7 - Memoire Virtuelle
 
SdE 4 - Processus
SdE 4 - ProcessusSdE 4 - Processus
SdE 4 - Processus
 
SdE 9 - Threads
SdE 9 - ThreadsSdE 9 - Threads
SdE 9 - Threads
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
SdE 10 - Threads
SdE 10 - ThreadsSdE 10 - Threads
SdE 10 - Threads
 
Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)
 
Initiation Linux
Initiation LinuxInitiation Linux
Initiation Linux
 
Formation Linux lpi 101
Formation Linux lpi 101 Formation Linux lpi 101
Formation Linux lpi 101
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
SdE 4: Processus
SdE 4: ProcessusSdE 4: Processus
SdE 4: Processus
 
Linux commandes
Linux commandesLinux commandes
Linux commandes
 
الأوامر في لينكس
الأوامر في لينكسالأوامر في لينكس
الأوامر في لينكس
 

Similaire à SdE TP 3 - Fonctions d'entrée et sortie

03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier
Noël
 

Similaire à SdE TP 3 - Fonctions d'entrée et sortie (20)

cours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdfcours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdf
 
Couse SE Le système d’exploitation Linux - IPSET.pdf
Couse SE Le système d’exploitation Linux - IPSET.pdfCouse SE Le système d’exploitation Linux - IPSET.pdf
Couse SE Le système d’exploitation Linux - IPSET.pdf
 
cour administration système.pptx
cour administration système.pptxcour administration système.pptx
cour administration système.pptx
 
Cours Linux , bases de l'administration linux
Cours Linux , bases de l'administration linuxCours Linux , bases de l'administration linux
Cours Linux , bases de l'administration linux
 
Formation Informatique base et généralités
Formation Informatique base et généralitésFormation Informatique base et généralités
Formation Informatique base et généralités
 
Ch1 p1
Ch1 p1Ch1 p1
Ch1 p1
 
Linux_Cours.ppt
Linux_Cours.pptLinux_Cours.ppt
Linux_Cours.ppt
 
Chapitre 2 Linux
Chapitre 2 LinuxChapitre 2 Linux
Chapitre 2 Linux
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
 
03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
OpenNMS
OpenNMSOpenNMS
OpenNMS
 
Affichage d'un document Office sous Android
Affichage d'un document Office sous AndroidAffichage d'un document Office sous Android
Affichage d'un document Office sous Android
 
Mouhi nous-mêmes informations financières horaires
Mouhi nous-mêmes informations financières horairesMouhi nous-mêmes informations financières horaires
Mouhi nous-mêmes informations financières horaires
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
chapitre0.pptx
chapitre0.pptxchapitre0.pptx
chapitre0.pptx
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptx
 
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdfCours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
 
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
 

Plus de Alexandru Radovici

Plus de Alexandru Radovici (20)

SdE2 - Pilot Tock
SdE2 - Pilot TockSdE2 - Pilot Tock
SdE2 - Pilot Tock
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - Introduction
 
SdE2 - Introduction
SdE2 - IntroductionSdE2 - Introduction
SdE2 - Introduction
 
MDAD 6 - AIDL and Services
MDAD 6 - AIDL and ServicesMDAD 6 - AIDL and Services
MDAD 6 - AIDL and Services
 
MDAD 5 - Threads
MDAD 5 - ThreadsMDAD 5 - Threads
MDAD 5 - Threads
 
MDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recyclingMDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recycling
 
MDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI ApplicationsMDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI Applications
 
MDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android FrameworkMDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android Framework
 
MDAD 1 - Hardware
MDAD 1 - HardwareMDAD 1 - Hardware
MDAD 1 - Hardware
 
MDAD 0 - Introduction
MDAD 0 - IntroductionMDAD 0 - Introduction
MDAD 0 - Introduction
 
SdE 11 - Reseau
SdE 11 - ReseauSdE 11 - Reseau
SdE 11 - Reseau
 
SdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionSdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de execution
 
ALF 6 - Parser
ALF 6 - ParserALF 6 - Parser
ALF 6 - Parser
 
ALF 5 - Parser
ALF 5 - ParserALF 5 - Parser
ALF 5 - Parser
 
ALF 4 - Grammaires
ALF 4 - GrammairesALF 4 - Grammaires
ALF 4 - Grammaires
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et LexerALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
ALF 1 - Automates finis
ALF 1 - Automates finis ALF 1 - Automates finis
ALF 1 - Automates finis
 
DAPM 1 - Introduction
DAPM 1 - IntroductionDAPM 1 - Introduction
DAPM 1 - Introduction
 

Dernier

Dernier (13)

Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptx
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbaines
 
Exemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste AuditExemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste Audit
 
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfPowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 
Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptx
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
 
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
 
rapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfrapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdf
 
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre française
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
 

SdE TP 3 - Fonctions d'entrée et sortie

  • 2. Bibliographie pour aujourd'hui • Modern Operating Systems – Chapitre 6 • 6.1 • 6.2 • Operating Systems Concepts – Chapitre 11 2
  • 4. Operations avec les fichiers • création • ouverture • lecture • écriture • positionnement dans le fichier • tronquer • fermeture • suppression 4
  • 5. Creation • shell touch /path/to/file toute commande qui écrit dans un fichier le crée • ISO/ANSI C FILE *f = fopen ("/path/to/file", "rw"); • POSIX int fd = open ("/path/to/file", O_CREAT | O_EXCL, 0644); • Windows HANDLE fileHandle = CreateFile ("/path/to/file", ..., CREATE_NEW); 5
  • 6. Ouverture • ISO/ANSI C FILE *f = fopen("/path/to/file", "rt"); • POSIX int fd = open("/path/to/file", O_RDONLY); • Windows HANDLE f = CreateFile("/path/to/file", ..., OPEN_EXISTING); 6
  • 7. Descripteur de fichier • plus de descripteur peut correspondre aux même fichier • chaque processus a une table de descripteurs de fichiers • POSIX – un entier identifiant une instance de fichier ouvert dans un processus – descripteurs spéciaux • 0 (stdin), 1 (stdout), 2 (stderr) • ISC C – File • Windows – HANDLE 7
  • 8. Table de descripteur de fichier 8
  • 9. Lecture • stocker des informations dans un tampon • avance du curseur de fichier • ISO C // reads size * times bytes n_items = fread(buffer, size, items, f); • Unix // reads maximum size bytes // use only within a loop n_read = read(fd, buffer, size); • Windows ReadFile(fHandle, buffer, bytesToRead, &bytesRead, NULL); 9
  • 10. Ecriture • écrire des informations à partir d'un tampon • avance du curseur de fichier • ISO C // writes size * times bytes n_items = fwrite(buffer, size, items, f); • Unix // writes maximum size bytes // use only within a loop n_write = write(fd, buffer, size); • Windows WriteFile(fHandle, buffer, bytesToWrite, &bytesWritten, NULL); 10
  • 11. Curseur de fichier • changements à lire et à écrire • initialisation à l'ouverture • mouvement de curseur de fichier • ISO C fseek(f, offset, SEEK_SET); • Unix lseek(fd, offset, SEEK_SET); • Windows SetFilePointer(fHandle, distanceToMove, NULL, FILE_BEGIN); 11
  • 12. Espace utilisateur Espace noyau Fichier sur le discinstance de fichier ouvert struct file Pointeur fichier utilisateur droits inode struct inode droits taille bloc pointeurs uid gid Fichier ouverte descripteur Types des donnees 12
  • 13. Duplication de descripteur • dupliquer un descripteur dans un autre descripteur • les deux descripteurs fonctionnent sur le même fichier • POSIX newfd = dup(oldfd); dup2(oldfd, newfd); • Windows DuplicateHandle(...); SetStdHandle(...); 13
  • 14. Tronquer • supprimer le contenu du fichier • le curseur de fichier est mis à size • un fichier peut être ouvert et tronqué // size is 0 open("/path/to/file", O_RDWR | O_TRUNC); • un fichier peut être ouvert et tronqué truncate("/path/to/file", size); • un fichier peut être tronqué après ouverture ftruncate(fd, size); SetEndOfFile(hFile); // Windows 14
  • 15. Fermer • l'entrée de la table de descripteur est supprimée • ISO C fclose (f); • POSIX close(fd); • Windows CloseHandle(fHandle); 15
  • 16. Supprimer • supprimer le fichier du système de fichiers • shell rm file.txt • ISO/C remove("file.txt"); • POSIX unlink("file.txt"); • Windows DeleteFile("file.txt"); 16
  • 17. Redirection • shell echo “message” > file_out.txt grep “word” < file_in.txt • POSIX fd = open ("file_out"); close (1); dup2 (fd, 1); close (fd); 17
  • 20. UNIX • Sur bits: – r w - r- - r - - corresponde a 110100100 – r w x r- x - - - corresponde a 111101000 – r w - rw- - - - corresponde a 110110000 • Octal: – r w - r- - r - - corresponde a 644 – r w x r- x - - - corresponde a 750 – r w - rw- - - - corresponde a 660 20
  • 21. Gestion de permissions • UNIX: – Entités: User, Group, Others – Types: Read, Write, Execute // mode in octal chmod("/path/to/file", 0644); • Windows: Listes d’acces – ACL: access control lists – Types: lecture, écriture, listage, croisement, création de sous-fichiers, etc. – Permissions seulement sur NTFS, pas sur FAT32 SetNamedSecurityInfo(...); 21

Notes de l'éditeur

  1. [8] - inode - http://elf.cs.pub.ro/so2/wiki/laboratoare/lab09