0 votes

Comment exactement un fichier est-il ouvert pour la lecture/écriture par des applications comme msword/pdf ?

Je veux savoir quelles sont les étapes que suit une application pour ouvrir le fichier et permettre à l'utilisateur de le lire. Un fichier n'est rien d'autre qu'une séquence de bits sur le disque. Quelles sont les étapes à suivre pour afficher le contenu du fichier ?

Je veux le faire de manière programmatique en C. Je ne veux pas commencer par des formats complexes comme word/pdf mais quelque chose de plus simple. Alors, quel est le meilleur format ?

0voto

mfeingold Points 5236

Commencez par des fichiers de texte brut

0voto

David Z Points 49476

Si vous voulez étudier cette question, commencez par du texte ASCII brut. Il n'y a qu'un octet par caractère, c'est très simple, et vous pouvez l'ouvrir dans le Bloc-notes ou n'importe lequel de ses remplaçants bien plus performants.

Quant à ce qui se passe réellement lorsqu'un programme lit un fichier... en gros, il s'agit de faire un appel système pour ouvrir le fichier, ce qui vous donne un handle de fichier (juste un numéro que le système d'exploitation associe à un enregistrement dans le système de fichiers). Vous faites ensuite un appel système pour lire des données du fichier, et le système d'exploitation va les chercher sur le disque et les copie dans une région de la RAM que vous spécifiez (ce serait un tableau de caractères/octets dans votre programme). Répétez la lecture si nécessaire. Et lorsque vous avez terminé, vous lancez un autre appel système pour fermer le fichier, ce qui indique simplement au système d'exploitation que vous en avez fini avec lui. La séquence, en pseudo-code C, est donc la suivante

int f = fopen(...);
while (...) {
    byte foo[BLOCK_SIZE];
    fread(f, foo, BLOCK_SIZE);
    do something with foo
}
fclose(f);

Si vous vous intéressez à ce que le système d'exploitation fait réellement en coulisses pour transférer les données du disque à la mémoire vive, eh bien... c'est une toute autre boîte de Pandore ;-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X