Accueil > Forum > > > > Détection de la fin d'écriture d'un fichier par un autre programme
Détection de la fin d'écriture d'un fichier par un autre programme
jeudi 19 février 2009 à 10:19:58 |
Détection de la fin d'écriture d'un fichier par un autre programme
|
jeudi 19 février 2009 à 10:23:56 |
Re : Détection de la fin d'écriture d'un fichier par un autre programme

nanard1402
|
Bonjour à tous,
Désolé pour le premier message fausse manip.
Je vous explique le contexte : j'ai un programme qui contact un 2éme programme via des sockets tcp pour lui demander de générer un son wav. Pour certaines raisons, la communication avec le programme qui génére le son doit être unidirectionnelle : Je peut demander à ce programme de générer le son, mais ce programme ne peut pas me répondre.
Donc voila ce qui se passe : mon programme demande au générateur de son de créer un fichier wav. Ensuite, mon programme doit récupérer le fichier wav pour l'envoyer sur le réseau. Le problême est que le générateur de son n'a pas la possiblité de me dire à quel moment il a fini de générer le son.
J'ai commencé par me basé sur la date de modification du fichier mais cette date est mise à jour dès que le générateur de son commence à modifier le fichier wav et donc, je récupère un fichier wav auquel il manque des données.
Je me suis ensuite basé à la fois sur la date de mofdification et sur la taille du fichier avec le code suivant :
void coach::waitForFile(const string fileName)
{
string now = getNow();
while(isLower(getLastModifTime(fileName)),now))
sleep(0.1);
off_t lastSize = 0;
while(lastSize < getSize(fileName))
{
lastSize = getSize(fileName);
sleep(0.1);
}
}
Toutes les fonctions utilisées dans cette méthode fonctionnent.
getNow() -> Récupére le temps actuel
getLastModifTime(fileName)->Récupére la date de dernière modification du fichier.
isLower(date1,date2)->Compare deux dates entre elles
getSize(fileName)->Récupère la taille du fichier.
Même avec cette méthode, je récupère un fichier wav incomplet.
Qualqu'un saurait pourquoi? Y a t-il une autre manière de réaliser ça ?
Merci d'avance.
|
|
jeudi 19 février 2009 à 11:16:29 |
Re : Détection de la fin d'écriture d'un fichier par un autre programme

SebLinck
|
En C:
while(r>0) r = recev(...)
Cordialement, Sébastien.
|
|
jeudi 19 février 2009 à 11:24:55 |
Re : Détection de la fin d'écriture d'un fichier par un autre programme

ed73
|
Si c'est toi qui écrit également le générateur de son, une méthode simple serait qu'il crée un fichier quelconque lorsqu'il a fini de créer le .wav. Ton programme n'a plus qu'à tester l'existence de ce fichier et à l'effacer après récupération du .wav.
Sinon ton appel à sleep(0.1) me semble curieux, la durée de sleep est normalement en millisecondes.
ed73
|
|
jeudi 19 février 2009 à 11:36:52 |
Re : Détection de la fin d'écriture d'un fichier par un autre programme

nanard1402
|
Merci pour vos réponses.
Mon problême est que je ne peut pas modifier le générateur de son.
Je dev sous Linux et le sleep de unistd est en sec.
Je n'ai pas compris ta réponse SebLinck pourrait tu la détailler un peu plus stp ?
Merci
|
|
jeudi 19 février 2009 à 13:20:14 |
Re : Détection de la fin d'écriture d'un fichier par un autre programme

SebLinck
|
Ben le recev(...) te renvois le nombre d'octet copié, quand il renvois 0c'est qu'il ni a plus rien a copier donc ton transfert est finni.
Cordialement, Sébastien.
|
|
Cette discussion est classée dans : fichier, fin, programme, détection, écriture
Répondre à ce message
Sujets en rapport avec ce message
Vérifier un header de fichier... [ par MorZong ]
Salut,Voilà j'ai créer un programme (simple, pas avec API) de cryptage tout simple et je voudrais qu'il ait sont propre genre de fichier. Alors j'ai m
traitement d'un fichier txt [ par sylvain ]
Bonjour,Je doit effectuer un traitement sur un fichier txt.Je reçoit un fichier txt sous cette forme :// début fichierdébut annonce..........@ fin ann
erreur de demarrage programme [ par nango ]
Quand je compile sous visual c++ il m'apparait le message d'erreur suivant : "un fichier.DLL requis, MSPDB60.DLL, n'a pas été trouvé".Pourtant ce fich
Fin du programme en C++? [ par jia2812 ]
Salut, au risque de me faire passer pour 1 c... ou pour qqu'1 qui n'a pas assez lu le forum, je commence juste le C++... Voilà, je voulais savoir l'é
Pb de compilation [ par Cyberboy2054 ]
Salut J' ai un piti problème de compilation en C++Quand j' ai terminé mon programme (un aplication console)je teste mon programme depuis le compilateu
Poblèmes pour lire un fichier audio dans un programme C++ [ par Nicolas ]
Pour un projet C++ (linéaire),il souhaiterais réalisé une bibliothèque musical(.mp3, .wav). J'aurais besoin pour ca de lire les fichiers audio mais je
AIDE programme supprimer un fichier ! SVP [ par nico ]
salut à tous,je suis un gros nul en c++ , je viens de telecharger dev-c++ et j'aimerais faire mon premier programe tout simple pour supprimer un fichi
lire un fichier d'option [ par Vinsou ]
Je dévellope un projet sous linux. Dans ce programme j'ai des variables qui contiennent le chemin de fichiers se trouvant sur le système, qui doivent
QUESTION ya T IL UN AUTRE MOYEN EN RESEAU ? [ par bily ]
Vegeta :-)comment faire pour envoyer un fichier par programme ??je programme en c++builder et j'utilise les socketsG 1 IDEE mais est ce la BONNE ?Li
ouverture d'un fihier au lancement d'un programme [ par spirit ]
j'aimerai savoir comment connaitre le nom d'un fichier lors de l'execution du programme associé à ce fichierex: quand on clique sur un fichier .txt, B
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|