Répéter une boucle tous les 5 minutes
massik25w
Messages postés
65
Statut
Membre
-
noghost -
noghost -
Bonjour,
Je voudrais savoir comment faire pour répéter une boucle ou une fonction tous les 5 minute
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(void)
{
char tab[100];
char *p;
FILE *f;
int echou;
echou = 0;
system("ping www.google.fr >> out.txt");
f = fopen("out.txt", "r");
if(f == NULL){
puts("Erreur d'ouverture");
return -1;
}
while(fgets(tab, sizeof(tab), f)){
if((p = strstr(tab, "757")) != NULL)
echou++;
if(echou == 5)
system("shutdown/s");
}
fclose(f);
return 0;
}
Ici je veux que le Ping ce répète toute les 5 minute
merci
Je voudrais savoir comment faire pour répéter une boucle ou une fonction tous les 5 minute
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(void)
{
char tab[100];
char *p;
FILE *f;
int echou;
echou = 0;
system("ping www.google.fr >> out.txt");
f = fopen("out.txt", "r");
if(f == NULL){
puts("Erreur d'ouverture");
return -1;
}
while(fgets(tab, sizeof(tab), f)){
if((p = strstr(tab, "757")) != NULL)
echou++;
if(echou == 5)
system("shutdown/s");
}
fclose(f);
return 0;
}
Ici je veux que le Ping ce répète toute les 5 minute
merci
A voir également:
- Répéter une boucle tous les 5 minutes
- Cvitae 5 - Télécharger - Emploi & CV
- Tableau de combinaison loto 5/90 - Forum Logiciels
- Je voudrai avoir toutes les combinaisons possibles du 5/90 merci - Forum Excel
- Kyle xy saison 5 ✓ - Forum Cinéma / Télé
- Paysafecard 5€ tabac - Forum Jeux vidéo
5 réponses
j'ai une autre quesstion
par exammple si le ping a echoué 1 ou 2 ou 3 ou 4 fois a que apré le ping réuessie comment faire pour remetre la variable echou a zéro
if(ping reussi ) echou = 0;
par exammple si le ping a echoué 1 ou 2 ou 3 ou 4 fois a que apré le ping réuessie comment faire pour remetre la variable echou a zéro
if(ping reussi ) echou = 0;
Je suis septique avec ce test pour déterminer si le ping a réussi car c'est quoi ce 757 ?
Si ça réussit, le fichier out.txt contient un truc du genre :
Envoi d'une requ^te 'ping' sur www.l.google.com [74.125.230.83] avec 32 octets de donn'esÿ:
R'ponse de 74.125.230.83ÿ: octets=32 temps=45 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=43 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=129 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=43 ms TTL=55
Statistiques Ping pour 74.125.230.83:
Paquetsÿ: envoy's = 4, re#us = 4, perdus = 0 (perte 0%),
Dur'e approximative des boucles en millisecondes :
Minimum = 43ms, Maximum = 129ms, Moyenne = 65ms
et si ça échoue, il contient :
La requ^te Ping n'a pas pu trouver l'h"te www.google.fr. V'rifiez le nom et essayez ... nouveau.
(désolé pour les accents, ils sont comme ça dans le fichier out.txt créé)
Je ne vois pas le rapport avec 757 car dans les deux cas, il n'y a pas de 757...
Si ça réussit, le fichier out.txt contient un truc du genre :
Envoi d'une requ^te 'ping' sur www.l.google.com [74.125.230.83] avec 32 octets de donn'esÿ:
R'ponse de 74.125.230.83ÿ: octets=32 temps=45 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=43 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=129 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=43 ms TTL=55
Statistiques Ping pour 74.125.230.83:
Paquetsÿ: envoy's = 4, re#us = 4, perdus = 0 (perte 0%),
Dur'e approximative des boucles en millisecondes :
Minimum = 43ms, Maximum = 129ms, Moyenne = 65ms
et si ça échoue, il contient :
La requ^te Ping n'a pas pu trouver l'h"te www.google.fr. V'rifiez le nom et essayez ... nouveau.
(désolé pour les accents, ils sont comme ça dans le fichier out.txt créé)
Je ne vois pas le rapport avec 757 car dans les deux cas, il n'y a pas de 757...
non 747 c'est n'est qu'un example
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<windows.h>
int echou=0;
int
main(void)
{while(1){
char tab[100];
char *p;
FILE *f;
remove ("out.txt");
system("ping www.google.fr >> out.txt");
f = fopen("out.txt", "r");
if(f == NULL){
puts("Erreur d'ouverture");
return -1;
}
if(fgets(tab, sizeof(tab), f)){
if((p = strstr(tab, "100%"))||(p = strstr(tab, "50%"))||(p = strstr(tab, "pas"))||(p = strstr(tab, "75%"))||(p = strstr(tab, "25%"))||(p = strstr(tab, "Impossible"))||(p = strstr(tab, "attente")) != NULL)
echou++;
if(echou == 5){ system("shutdown/s"); }
}
printf("%d",echou);
fclose(f);
Sleep(300000);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<windows.h>
int echou=0;
int
main(void)
{while(1){
char tab[100];
char *p;
FILE *f;
remove ("out.txt");
system("ping www.google.fr >> out.txt");
f = fopen("out.txt", "r");
if(f == NULL){
puts("Erreur d'ouverture");
return -1;
}
if(fgets(tab, sizeof(tab), f)){
if((p = strstr(tab, "100%"))||(p = strstr(tab, "50%"))||(p = strstr(tab, "pas"))||(p = strstr(tab, "75%"))||(p = strstr(tab, "25%"))||(p = strstr(tab, "Impossible"))||(p = strstr(tab, "attente")) != NULL)
echou++;
if(echou == 5){ system("shutdown/s"); }
}
printf("%d",echou);
fclose(f);
Sleep(300000);
}
return 0;
}
Voici le code que je te propose
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
int main(void) {
FILE *f;
int echou=0;
while(1){
// Efface le fichier out.txt
remove ("out.txt");
// Effectue le ping
system("ping www.google.fr");
// Créer le fichier out.txt si la commande ping a réussi
system("IF NOT ERRORLEVEL 1 (echo OK >>out.txt)");
// Ouvre le fichier out.txt
f = fopen("out.txt", "r");
if(f == NULL) {
// Le fichier out.txt n'existe pas, le ping a échoué
echou++;
if(echou == 5){
system("shutdown/s");
}
}
else {
// Le fichier out.txt a été ouvert, le ping a réussi
echou = 0;
fclose(f);
}
// Pause de 5 minutes
Sleep(300000);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
int main(void) {
FILE *f;
int echou=0;
while(1){
// Efface le fichier out.txt
remove ("out.txt");
// Effectue le ping
system("ping www.google.fr");
// Créer le fichier out.txt si la commande ping a réussi
system("IF NOT ERRORLEVEL 1 (echo OK >>out.txt)");
// Ouvre le fichier out.txt
f = fopen("out.txt", "r");
if(f == NULL) {
// Le fichier out.txt n'existe pas, le ping a échoué
echou++;
if(echou == 5){
system("shutdown/s");
}
}
else {
// Le fichier out.txt a été ouvert, le ping a réussi
echou = 0;
fclose(f);
}
// Pause de 5 minutes
Sleep(300000);
}
return 0;
}
je vous explique le but s'est de faire etaindre le pc s'il n'y a pas de connection internet pendat 25 min
si vous avez une ideé ou bien un logiciele qui existe ditent le moi, merci
si vous avez une ideé ou bien un logiciele qui existe ditent le moi, merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je n'ai plus de compilateur C/C++ pour tester mon code mais si ça ne fonctionne pas, c'est soit le fichier out.txt n'est pas effacé, soit le fichier out.txt est systématiquement créé ou soit que fopen("out.txt", "r") ne retourne pas NULL si le fichier n'existe pas.
1er point : il faut vérifier que remove("out.txt") efface bien le fichier (j'ai repris cette ligne de ton code)
2ème point : le problème vient peut-être des deux lignes system. Ensemble, je les ai testé, elles fonctionnent : le fichier out.txt est bien créé seulement s'il y a du réseau. Mais avec deux system consécutives, le ERRORLEVEL ne correspond peut-être pas au résultat du PING.
Si le problème vient de là (c'est-à-dire que le fichier out.txt est créé même si le ping a échoué), tu peux copier les deux lignes
ping www.google.fr
IF NOT ERRORLEVEL 1 (echo OK >>out.txt)
dans un fichier texte que tu renommes en .bat, par exemple test.bat, et tu remplaces les deux lignes system par system("test.bat") qui créera le fichier out.txt seulement si le ping a fonctionné
3ème point : il faut vérifier que si le fichier out.txt n'existe pas, ça va bien dans la portion du code correspondant au test if(f == NULL)
Bon courage.
1er point : il faut vérifier que remove("out.txt") efface bien le fichier (j'ai repris cette ligne de ton code)
2ème point : le problème vient peut-être des deux lignes system. Ensemble, je les ai testé, elles fonctionnent : le fichier out.txt est bien créé seulement s'il y a du réseau. Mais avec deux system consécutives, le ERRORLEVEL ne correspond peut-être pas au résultat du PING.
Si le problème vient de là (c'est-à-dire que le fichier out.txt est créé même si le ping a échoué), tu peux copier les deux lignes
ping www.google.fr
IF NOT ERRORLEVEL 1 (echo OK >>out.txt)
dans un fichier texte que tu renommes en .bat, par exemple test.bat, et tu remplaces les deux lignes system par system("test.bat") qui créera le fichier out.txt seulement si le ping a fonctionné
3ème point : il faut vérifier que si le fichier out.txt n'existe pas, ça va bien dans la portion du code correspondant au test if(f == NULL)
Bon courage.
et avec sleep(300)
J'ai supposé que c'était en millisecondes mais selon les compilateurs et les bibliothèques, ça peut être en secondes.
(Sinon "imlicit declaration of function", je ne pense pas que ça soit gênant car c'est juste un warning mais pas une erreur)
voila ca marche pas