2010-11-25 33 views
0

Je veux télécharger un fichier html, en utilisant cette commande bashFaire une boucle infinie en téléchargeant un fichier en C++?

system("wget -q -E -O sample.html http://www.XXX.com"); 

quelque temps le fichier pourrait énorme, donc je pensais faire une boucle infinie jusqu'à ce que le fichier est téléchargé. C'est possible? Si oui, comment le faire?

Objectif principal:

Télécharger le fichier html, puis passez le reste des codes

je résous moi-même. Quelqu'un peut-il fermer cette question. Je suis terriblement désolé

+2

Postez votre solution comme une réponse, et a choisi comme réponse. – ajreal

+0

@ajreal: Je l'ai déjà fait. Mais j'ai trouvé la meilleure réponse => Ferrucio =) – popurity09

Répondre

3

system() se bloque jusqu'à l'exécution de la commande. Vous n'avez rien à faire de spécial pour l'attendre.

+0

Ouais ... merci Ferrucio !!! – popurity09

0

Vous devez utiliser une sorte de minuterie/retard pour la boucle (vérifier chaque seconde par exemple) pour ne pas faire frire que CPU :)

1

Vous devez utiliser popen et un mode approprié de wget qui sort la machine informations lisibles.

0

vous ne voulez pas faire une «boucle infinie» pour quelque chose qui n'est pas nécessaire pour être «programmé par logiciel». Au lieu de cela, je ferais une boucle où vous dormez le code jusqu'à ce que le téléchargement est terminé (dormez périodiquement et vérifiez si fini, sinon, dormez un peu plus, si oui, continuez sur). Si vous utilisez une boucle infinie, votre processeur deviendra inutilement inutile et vous voudrez éviter cela.

0

Ma réponse est:

while(system("wget -q -E -O sample.html http://www.XXX.com/")){ 
    ; 
}; 

Je sais que ma réponse est téter. J'essaierai d'implémenter la réponse de vos gars plus tard. mais je suis encore coincé, je poste une autre question ici Read file and extract certain part only

+0

Aviez-vous besoin de cela quand même? @Ferruccio dit que le système lui-même bloque jusqu'à ce qu'il soit terminé? – Konerak

+0

Vous avez raison ... Il n'est pas nécessaire d'utiliser en boucle. Merci, était occupé à coder lol. Et je pense que personne ne répondra à ma question lol – popurity09