écriture dans un fichier en C [Résolu]

Signaler
Messages postés
26
Date d'inscription
jeudi 6 janvier 2005
Statut
Membre
Dernière intervention
22 novembre 2005
-
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
-
Salut à tous, je suis débutante et je ne parviens pas à écrire un bout du programme destiné à écrire dans un fichier existant (parametre) des données que j'ai récupéré dans une page HTML , voilà ce que j'ai écrit :

main()

{
//Déclaration des variables

int i;
int num;
char buf;
int ret=1;
stringArray name;
stringArray value;
FILE *fichier;

//Fin de déclaration des variables

//mise en page

printf ("Content-type : text/html\n\n");
printf ("<HTML>");
printf ("<head>");
printf ("<meta http-equiv=\"Content-Language\" content=\"fr\">");
printf ("<meta http-equiv=\"Content-Type\" content=\"text/html;

charset=windows-1252\">");
printf ("<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 4.0\">");
printf ("<meta name=\"ProgId\" content=\"FrontPage.Editor.Document\">");
printf ("<title>Fichier install.log</title>");
printf ("");
printf ("</head>");
printf ("");
printf ("R&eacutesultat :

");

//fin mise en page

num = getnamevalue(&name, &value); //fonction qui renvoie un entier afin de savoir si les valeurs ont été correctement remplises

if (num==0)
{
printf ("L'adresse IP et le masque de sous-r&eacuteseau nont pas &eacutet&eacute saisis correctement");
exit(0);
}
else
{
fichier = fopen("/var/www/cgi-bin/parametre", "w+");//ouverture de mon fichier
printf ("\n");
for (i=0 ; i <num ; i++)
{
printf ("<li>
%s = %s
\n", name[i], value[i]);
//fwrite(name, 1, 1, fichier);
}

/*do
{
ret = fread(&buf, sizeof(char), 1, fichier);
}while (!feof(fichier));*/

printf ("");
printf("</html>");
printf("\n");
delnamevalue (name, value, num);
//fclose (fichier);
}
ce qui est en rose est ce qu'il refuse d'exécuter, merci de votre aide



Biz...!

6 réponses

Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Il est possible que tu n'aies pas les droits pour accéder à ce fichier.
Tu as essayé de lancer ton prog sous root ?

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
2
Surtout mettre les droits CHMOD 755 sur le fichier.

@+
Arnotic,
Admin CS, MVP Visual C++
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
2
Salut,

Mieux vaut que tu utilises les APIs Windows :
CreateFile()
WriteFile()
CloseHandle().

Pour plus d'infos sur ces fonctions va voir sur le site de MSDN : http://msdn.microsoft.com/library

@+
Arnotic,
Admin CS, MVP Visual C++
Messages postés
26
Date d'inscription
jeudi 6 janvier 2005
Statut
Membre
Dernière intervention
22 novembre 2005

ça aurait été avec plaisir, mais travaillant sous Linux il me refuse ces instructions.
Merci quant mem.



Biz...!
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
1
Salut,


Quand tu dis "il refuse d'executer", ça veut dire quoi exectement ? Il ne compile pas ? Il plante ?

Si il plante ça pourrait venir de la :
fichier = fopen("/var/www/cgi-bin/parametre", "w+");//ouverture de mon fichier

Tu ne verifie pas si l'ouverture du fichier a réussie
if(fichier==NULL) erreur !

Si fichier est NULL alors l'ecriture et la lecture vont planter !

D@runia
Messages postés
26
Date d'inscription
jeudi 6 janvier 2005
Statut
Membre
Dernière intervention
22 novembre 2005

J'ai rajouté le test d'erreur mais il plantetoujours,pas à la compilation qui se déroule parfaitement,
c'est lors de l'exécution qu'il me dit :


502 Bad Gateway
The CGI was not CGI/1.1 compliant.




Biz...!