NorSeb Posté 16 Février 2007 Posté 16 Février 2007 Bonjour, Savez-vous s'il y a un moyen de garder un fichier ouvert même après la fermeture du script qui l'a ouvert ? Merci,
captain_torche Posté 16 Février 2007 Posté 16 Février 2007 Que veux-tu dire par "garder un fichier ouvert" ?
NorSeb Posté 16 Février 2007 Auteur Posté 16 Février 2007 Plus précisément, le but du jeu consiste à passer des données dans un tube nommé (fichier) qui est ouvert en lecture par un script unix. C'est un script PHP qui est chargé d'ouvrir ce fameux tube en écriture pour y injecter les données. On s'est aperçu que le fait de le "fermer" désactive non seulement les droits en écriture mais aussi les droits en lecture ! La solution consisterait donc à rendre l'ouverture du fichier persistante...
Leonick Posté 16 Février 2007 Posté 16 Février 2007 Quelle idée ? plusieurs pistes : le fermer et changer les droits d'exécution ou le fermer et le mettre en lecture seule. Ca devrait aller ?
NorSeb Posté 16 Février 2007 Auteur Posté 16 Février 2007 On s'est aperçu que le fait de le "fermer" désactive non seulement les droits en écriture mais aussi les droits en lecture ! Je me suis mal exprimé, il ne s'agit pas d'un problème de droits. En réalité, le fichier est ouvert en lecture par un processus lui-même lançé par un script unix. Le même fichier peut être simultanément ouvert en écriture par un script php pour y déposer des données. Or la fin du script entraîne la fermeture en écriture du fichier et (c'est là que le bat blesse) ferme le fichier ouvert en lecture par l'autre processus. N'hésitez pas à me demander des précisions, ca ne s'éclaircit pour moi aussi que petit à petit
captain_torche Posté 19 Février 2007 Posté 19 Février 2007 J'imagine que dans ton code, tu n'utilises pas fclose. La fin du script est considérée comme une fermeture implicite du fichier ?
NorSeb Posté 19 Février 2007 Auteur Posté 19 Février 2007 La fin du script est considérée comme une fermeture implicite du fichier ? Apparement oui... et le pire c'est le deuxième processus "détecte" une fermeture du fichier.
destroyedlolo Posté 19 Février 2007 Posté 19 Février 2007 Si j'ai bien compris, tu veux avoir une sortie d'ouverture persistante comme avec les database. Ben, je n'ai rien vu de la sorte dans la doc de PHP pour les fichiers. La solution que j'emploierai serai de creer un deamon en C(++) qui ne servirait que de cache pour ce genre de connection, et PHP communiquerait avec ce deamon par des sockets. C'est assez simple a faire. A+ Lolo
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant