2009-09-23 6 views
2

J'ai un descripteur de fichier (edit: la ressource retournée par fopen sur un flux qui n'est pas nécessairement un fichier local) qui est passée dans une boîte noire. Quand il apparaît, est-il possible de déterminer avec certitude si oui ou non le descripteur a été fermé?Est-il possible de déterminer l'état d'un descripteur de fichier en PHP?

Edit:

Il ressemble à la fonction get_resource_type ($ fd) retournera "Inconnu" sur une ressource fermée. Est-ce que quelqu'un sait si cela est vrai pour la plupart des versions de PHP?

Répondre

4

Utilisez la fonction fstat()

+0

Cela fonctionne pour les noms de fichiers, pas les fichiers ouverts. –

+0

déjà corrigé que vous avez enregistré votre commentaire :) – drAlberT

+0

Merci. Cela fonctionne pour les fichiers locaux, mais pas pour les autres types de flux de type descripteur retournés par fopen. Je suppose que cela aurait dû être spécifié dans la question :) –

0

Je ne pense pas que ce soit une bonne chose à faire ce pointeur de fichier de passage dans Blackbox, ne sachant pas est fermé ou non. Cela semble briser la cohérence. Pourriez-vous expliquer, pourquoi avez-vous besoin de cela? Probablement, nous pourrions suggérer une meilleure solution.