Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1395 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] tester si un descripteur à été modifié

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] tester si un descripteur à été modifié

n°931078
nodus
Posté le 23-12-2004 à 17:36:08  profilanswer
 

Je souhaite tester si un descripteur à été modifié j'avais pensé tout d'abord à un select mais il teste si le descripteur est modifié pendant un temps donné. Or je souhaiterais scruter le descripteur à un interval donné pour voir si celui-ci à été modifié depuis la dernière fois.
 
la structure donnerait cela:
 
while(1){
    test=regarder(descripteur);
    if(test){
       ...
    }
}
 
Voila, si vous avez une idée sur la fonction à utiliser (ps je suis sous linux).
En tout cas merci de toute aide :hello:


---------------
Et toi, tu crois que les ours polaires vont chier dans les bois ?
mood
Publicité
Posté le 23-12-2004 à 17:36:08  profilanswer
 

n°931084
manatane
En vous remerciant, bonsoir
Posté le 23-12-2004 à 17:45:37  profilanswer
 

Je peux me tromper, mais il me semble qu'il te faudrait regarder directement le fichier avec utime( nom_fichier, &struct_utimbuf )
La structure passé en paramètre contient alors le dernier temps d'accès et le dernier temps de modification.  

n°931085
nodus
Posté le 23-12-2004 à 17:49:14  profilanswer
 

Aprés vérification la fonction est stat, par contre je suis désolé j'avais oublié de préciser que c'était pour tester la modification sur un pipe et non un fichier :sweat:
 
En clair je cherche à tester si un pipe à été rempli ou non


Message édité par nodus le 23-12-2004 à 17:51:43

---------------
Et toi, tu crois que les ours polaires vont chier dans les bois ?
n°931220
manatane
En vous remerciant, bonsoir
Posté le 23-12-2004 à 20:41:20  profilanswer
 

Si c'est un tube nommé (un fifo) c'est un fichier, il a donc un inode où stat() va chercher les informations, de meme normalement, pour utime() à qui il suffit de transmettre un second argument non NULL si on veut consulter l'inode.

n°931273
Lam's
Profil: bas.
Posté le 23-12-2004 à 22:15:52  profilanswer
 

fstat() plutôt, non ? Ca évite de se casser la tête avec le nom de fichier s'il est déjà ouvert.
Sinon, poll() doit pouvoir faire l'affaire pour un pipe...
 

n°931326
matafan
Posté le 24-12-2004 à 03:39:32  profilanswer
 

Si tu fais des essais avec ls -lc tu verra que la date est changée quand les données sont lues, pas quand elles sont écrites. Donc a mon avis ton truc c'est impossible en se basant sur la date.
 
Pourquoi veux-tu savoir s'il y a quelque chose dans le pipe sans le lire ?


Message édité par matafan le 24-12-2004 à 03:39:46
n°931501
nodus
Posté le 24-12-2004 à 15:47:14  profilanswer
 

Car s'il y a quelquechose le prog lancera une action, un read est bloquant or je cherche une fonction qui serait non bloquante. Le poll pourrait il faire l'affaire ?


---------------
Et toi, tu crois que les ours polaires vont chier dans les bois ?
n°934558
rolphin
Posté le 31-12-2004 à 11:26:23  profilanswer
 


Read n'est pas bloquant... il peut sortir s'il n'a rien à lire. Il faut mettre le fd en non bloquant O_NONBLOCK.
 
un sleep, un read, il retourne -1 et errno == EAGAIN tu continues, y'avais rien à lire.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] tester si un descripteur à été modifié

 

Sujets relatifs
A propo de licence GNU, et d'un script modifié (galerie photos 2bgal)tester la fin d'impression Word en OLE
tester l'existence d'une popu à partir de la fenêtre ouvranteImage qui se modifie au survol de la souris
[SQL] Fonction pour tester si un champs est numérique ?[C/UNIX] tester les port ouvert en TCP
tester une valeur et imprimertester l'existence d'un fichier sur le serveur [résolu]
[ASP] tester si un fichier qui vient d'etre créé existetester une connexion FTP annonymous en php
Plus de sujets relatifs à : [C] tester si un descripteur à été modifié


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR