IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Que veut dire "atomique" (notamment dans le cas de fwrite)


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 193
    Points : 68
    Points
    68
    Par défaut Que veut dire "atomique" (notamment dans le cas de fwrite)
    Bonjour,

    C'est peut-être idiot mais je ne sais pas et n'arrive pas à trouver ce que veux dire "atomique" en programmation php.

    Je crois comprendre (vu la notion physique d'atome ): les actions atomiques sont peut-être des actions élémentaires et indivisibles au milieu desquelles le serveur ne pourra pas intercaler d'autres actions (même appelées par un autre client...?)...j'ai bon?

    Ca m'amène à une question. J'ai trouvé ça à propos de fwrite:
    Note: Si handle est ouvert en mode append, fwrite() sera atomique (sauf si la taille de string excède la taille du bloc du système de fichiers, sur quelques plates-formes, et tant que le fichier se trouve sur le système de fichiers local). Ainsi, il n'est pas nécessaire d'utiliser la fonction flock() sur une ressource avant d'appeler la fonction fwrite() ; toutes les données seront écrites sans interruption.
    Est-ce que cela veut dire que si un script fait (avec $handle ouvert en a+)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite($handle,"ecriture1")
    et si un autre script fait en même temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite($handle,"ecriture2")
    Le fichier pointé par $handle contiendra soit "ecriture1ecriture2" soit "ecriture2ecriture1", mais ne pourra pas être corrompu par une écriture simultanée (dans le genre "ecritecrure1iture2" ou même avec des caractères fantaisistes)...?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    oui. Dans la mesure ou la taille de la chaine à écrire est plus petite que <<la taille du bloc du système de fichiers>>.
    Perso ne connaissant pas la taille du fichier système sur lequel je développe, sa ne m'aide pas beaucoup...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 193
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par kaymak Voir le message
    oui. Dans la mesure ou la taille de la chaine à écrire est plus petite que <<la taille du bloc du système de fichiers>>.
    Perso ne connaissant pas la taille du fichier système sur lequel je développe, sa ne m'aide pas beaucoup...
    Effectivement...connais-tu néanmoins l'ordre de grandeur de "la taille du bloc" ? Par exemple si cette taille est de l'ordre du mo ca ne me poserait pas de problème...

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    A ma connaissance, la taille d'un bloc est de l'ordre du ko... mais c'est assez variable suivant le système de fichier.
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 193
    Points : 68
    Points
    68
    Par défaut
    Ok merci à vous deux pour vos réponses!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Que veut dire les + dans une table?
    Par La Zélie dans le forum Modélisation
    Réponses: 2
    Dernier message: 01/02/2008, 15h06
  2. Réponses: 4
    Dernier message: 23/11/2006, 22h05
  3. Que veut dire : dans un constructeur?
    Par Jean_Benoit dans le forum C++
    Réponses: 5
    Dernier message: 19/10/2006, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo