salut ,
je voudrais utiliser la commande wget dans un programme C pour récupérer des données d'un site
alors je voudrais savoir si on doit ajouter une autre commande pour que ça marche sous C ou bien on met la commande directement
merci
salut ,
je voudrais utiliser la commande wget dans un programme C pour récupérer des données d'un site
alors je voudrais savoir si on doit ajouter une autre commande pour que ça marche sous C ou bien on met la commande directement
merci
Salut;
Tu es sur linux je crois ??
tu peux utiliser l'instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part system("wget ..");
oui je travail sur linux , en effet j'ai un petit code écrit en perl que je dois écrire en C , cependant je ne sais rien à propos de perl , alors j'essaye de tatonner mais ça marche pas tious le temps , alors ça serai bien que vous m'aidez à re-écrire ce code en C
voilà , j'ai déja déchiffré le fait que la fonction prend en paramétre 4 variables , mais j'ai pas toujours compris comment écrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #!/usr/bin/perl -w # download selected variables from NARR 15290102-09Z merged-a data from NCDC ###Usage info/check sub Usage{ `error entree`; exit 1; } @ARGV ==4 or Usage(); #@args = @ARGV; $date = shift; $yymm = shift; $nlat = shift; $nlon = shift; print STDERR "date $date $yymm \n"; #Recuperation des donnees en ascii: `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?spfh2m[6][$nlat][$nlon]" -O out`; `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?tmp2m[6][$nlat][$nlon]" -O out2`; `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?pres2m[6][15][$nlon]" -O out3`; `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?pwatclm[6][$nlat][$nlon]" -O out4`; `echo $date \`grep '0..0' out\` \`grep '0..0' out2\` \`grep '0..0' out3\` \`grep '0..0' out4\` >> liste_dods-$nlat-$nlon `; exit 0;
`echo $date \`grep '0..0' out\` \`grep '0..0' out2\` \`grep '0..0' out3\` \`grep '0..0' out4\` >> liste_dods-$nlat-$nlon `;
en C. en effet ça fait quoi ce echo ??? je vois qu'il utilise out , out 2 .. qui contiennet les infos récupérés pas la commande wget.
je sais que ma question est un peu hors sujet par rapport au forum mais bon
merci
Bonjour,
bon rien de bien mechant, les appel de fonction shell a appeler par des system( "wget ..." );
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #!/usr/bin/perl -w # download selected variables from NARR 15290102-09Z merged-a data from NCDC ###Usage info/check sub Usage{ `error entree`; exit 1; } /* si nb_arg != 4 => message + sortie (fct usage() juste dessus)*/ @ARGV ==4 or Usage(); /* bon je sais plus ce que ca fait mais ca ressemble a une sauvegarde parametre sous une forme differente (de tableau a liste ou tree a liste, t1 le perl, write once, read never again) */ #@args = @ARGV; $date = shift; /* premier arg dans date */ $yymm = shift; /* 2eme arg dans yymm */ $nlat = shift; /* ... */ $nlon = shift; /* ... */ print STDERR "date $date $yymm \n"; /* affichage sur la sortie d erreur des param extraits */ #Recuperation des donnees en ascii: /* appel a la commande shell wget avec l option -O pour rediriger la sortie standard vers un fichier */ `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?spfh2m[6][$nlat][$nlon]" -O out`; `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?tmp2m[6][$nlat][$nlon]" -O out2`; `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?pres2m[6][15][$nlon]" -O out3`; `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?pwatclm[6][$nlat][$nlon]" -O out4`; /* affichage des lignes contenant "0..0" si je dis pô de bêtises concatenées dans le fichier lists_dods-param3-param4*/ `echo $date \`grep '0..0' out\` \`grep '0..0' out2\` \`grep '0..0' out3\` \`grep '0..0' out4\` >> liste_dods-$nlat-$nlon `; exit 0; /* sortie */
la concatenation des arguments a coup de sprintf et pis c'est fini (toutes les variables commencant par $ doivent etre remplacees).
bon apres cette partie :
soit pareil appel a system() avec la meme chaine (a peu pres a voir les carac d echappement) ou bien lecture avec les flux C standard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part `echo $date \`grep '0..0' out\` \`grep '0..0' out2\` \`grep '0..0' out3\` \`grep '0..0' out4\` >> liste_dods-$nlat-$nlon `;
voila, bon courage
Partager