Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/01/2012, à 16:09

Dinarzade

Manipulation de fichiers en coure d'utilisations

Bonjours,

Rarement sur le forum, je passe tout de même de temps en temps et suis toujours repartit avec ma solution !
Merci pour votre travail et pour votre disponibilité. Pareille communauté autour du libre, c'est plus-top rare ! chapeaux !

Je viens ici pour vous poser une petite question concernant la manipulation des fichiers en coure d'utilisation.
En effet, je me suis souvent demandé, encore aujourd'hui, pourquoi un fichier ouvert, ne peut-être supprimé, voir même déplacé sous MS Windows, alors que c'est tout à fait possible sous linux ou mac OSX ??

Est-ce que ça à un rapport avec le système de fichier ?

Si quelqu'un à la réponse et peux me l'expliquer ce serait super !

Merci !

Dinarzade.

Hors ligne

#2 Le 10/01/2012, à 07:46

NLS le pingouin

Re : Manipulation de fichiers en coure d'utilisations

Je vais peut-être raconter du bullshit. Mais lorsque ça s'applique à un fichier exécutable, il y a de forte chance pour que ça fonctionne comme ça :

Lorsque que tu lis un fichier, il est chargé en RAM. Donc tu peux sans trop de problème le supprimer, le modifier ou le déplacer de ton disque dur. C'est la version chargée en RAM qui sera utilisée.

Linux n'a pas prévu de système qui t'empèche de jouer avec ce fichier parce qu'ils doivent considérer que si l'utilisateur à voulu le modifier, c'est qu'il a alors une bonne raison. Dans la philosophie de Microsoft, si l'utilisateur essaye de faire un tel truc, c'est qu'il est inapte à utiliser son PC : la sanction ne se fait pas attendre et un message d'erreur s'affiche.

Dans le cas d'un fichier qui sera juste lu par un exécutable, tu peux le supprimer alors qu'il est encore en lecture. Une fois ouvert, le programme conserve un pointeur qui indique l'adresse mémoire du fichier sur le disque dur. Lorsque tu le lis, tu lis une case mémoire du disque dur. Si tu supprime le fichier, il a été supprimé du système de fichier, mais les données sont toujours présentes sur le disque dur, à la différence qu'il est maintenant possible d'écrire par dessus.

Si tu déplace le fichier, il est toujours au même endroit du disque dur (sauf si tu le déplace sur une autre partition, dans ce cas il est supprimé (voir plus haut) de cette partie du disque dur et recopié dans une autre), sa location sur le disque dur ne change pas. C'est sa description dans le système de fichier qui change (son chemin dans les dossiers). Mais vu que cette description n'est en fait qu'une traduction "chemin dans le système de fichier" -> "adresse en mémoire", ça ne sert qu'à l'ouverture.

En conclusion, bazarder un fichier en cours d'exécution est possible, mais le fonctionnement du bouzin devient alors aléatoire. Si le traitement du fichier ne prends pas trop de temps, tu ne devrais pas avoir trop de soucis.

Hors ligne