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
Version imprimable
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: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 écrireCode:
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 :mrgreen:
merci
Bonjour,
bon rien de bien mechant, les appel de fonction shell a appeler par des system( "wget ..." );Code:
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:`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