Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1625 connectés 

  FORUM HardWare.fr
  Programmation

  cgi c & c sous linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

cgi c & c sous linux

n°64887
slvn
Posté le 13-10-2001 à 11:34:13  profilanswer
 

bonjour !
voila, en compilant mes cgi sous linux, je me suis rendu compte que :  
1) strlen de (string.h) de windows, ne passait pas sous linux, je chercherais donc l equivalent :)
 
2) la methode " n a pas l air de marcher des masse..." pourtant, il s agit uniquement de lire sur l entree std mais, ca me renvoie une erreur,

mood
Publicité
Posté le 13-10-2001 à 11:34:13  profilanswer
 

n°64896
flo850
moi je
Posté le 13-10-2001 à 13:37:18  profilanswer
 

strlen marche sous linux , c'est sur . cette fonction fait partie des fct de base du C  
tu compile avec kelle option et tu as koi comme erreurs

n°64906
barbarella
Posté le 13-10-2001 à 14:56:18  profilanswer
 

slt SLVN,
 
je peux te garantir que la fonction strlen fonctionne. Le prob est ailleurs.
 
montre la partie du code qui deconne...

n°65019
slvn
Posté le 14-10-2001 à 16:29:03  profilanswer
 

oui, pardon je me suis trompé pour strlen, j avias pas mis l include..... (sous win, ca marche quand meme, surment car j incluait avant une autre fichier qui lui avait un include string.h ...)
 
donc la fonction strlen marche :)
 
mais sinon, les fonctions pour recuperer a partir des GET et POST, ca pas l air de marcher  
(  
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, theftp@caramail.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
 
More information about this error may be available in the server error log.
 
 
 
--------------------------------------------------
------------------------------
 
Apache-AdvancedExtranetServer/1.3.19 Server at localhost.localdomain Port 80)
 
 
pourtant ces fonctions marchent sous windwos, enfin bon c pas tres grave je trouverais bien la panne :)
 
par contre derniere petite question :  
avec gcc, (ou g++), comment faire pour que mon_fichier.c soit directement compilé en mon_fichier.exe (et pas en a.out comme il me fiat a chauqe fois?!)

n°65024
flo850
moi je
Posté le 14-10-2001 à 16:35:37  profilanswer
 

sous linux :
creer unfichier makefile :
 
fichier:fichier.o
      (ce n esont pas des espaces ,mais une tab)gcc fichier.o -o fichier
 
fichier.o:fichier.c fichier.h
      gcc -c fichier.c -o fichier.o
 
 
puis sauvegarde et tape make fichier et hop ca compile

n°65031
slvn
Posté le 14-10-2001 à 17:00:55  profilanswer
 

eu, c ets obligé de passer par un .o ??
(gcc fichier >> directement l executable )

n°65047
barbarella
Posté le 14-10-2001 à 18:44:06  profilanswer
 

salut,
 
pour ma page actu (par exemple j'utilise)
 
gcc -O3 -fomit-frame-pointer -o actu_aff.cgi actu_aff.c ../lib/maqbase3.c ../lib/libraire.c ../lib/maqtrap1.c ../lib/maqdico1.c  
 
le resultat est le fichier executable : actu_aff.cgi
 
N'oublie que tu dois produire un .CGI et non un .EXE. Apache ou IIS n'y comprendraient rien.
 
les options : -O3 -fomit-frame-pointer sont des options optimisation et facultatives. A eviter quand t'es pas absolument sur de ton code surtout pour "-fomit-frame-pointer"

n°65052
slvn
Posté le 14-10-2001 à 19:14:41  profilanswer
 

ok, ca va me simplifier la vie :))

n°65053
slvn
Posté le 14-10-2001 à 19:15:39  profilanswer
 

un exe, ca marche tres bien....
(j utilisait ca sous windows car le compilo en renvoie un, donc j avias fias mes pages avec  des href= *.exe )

n°65054
slvn
Posté le 14-10-2001 à 19:38:00  profilanswer
 

je capte pas pkoi mon prog se compile bien mais le cgi marche pas....(alors que sous win ca marchait )
j utilise stdio.h stdlib.h string.h
 
apparement, y a deux erreurs :(
une fonctions, ou j utilise que des if else, types simples et des pointeurs .....;;
 
une autre pareil, ou y a que des truc simples....
( est ce que gcc capte si je mets :
char *data ;  if (data==NULL) ......??

 

[edtdd]--Message édité par slvn--[/edtdd]

mood
Publicité
Posté le 14-10-2001 à 19:38:00  profilanswer
 

n°65076
barbarella
Posté le 14-10-2001 à 22:49:47  profilanswer
 

slt,
 
pour ma page de démarrage j'utilise ces lib sous linux
 
#include<stdio.h>
#include<fcntl.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
#include<sys/stat.h>
 
poour l'erreur c'est comme tu le penses certainement un prob de lib

n°65077
slvn
Posté le 14-10-2001 à 23:00:24  profilanswer
 

en fiat, c ets une erreur qui passait sous win mais pas sous linux :  je croaysi qu on pouvait utiliser free() pour liberer la memoire prise par un tableau, mais en fait, non :)  
 
par contre, la j ai un coup que je vois pas :
 
j ai l impression, qu apres :
char*data=getenv("QUERY_STRING" );
data n est jamais NULL        // enfin si gcc capte data != NULL..

n°65081
barbarella
Posté le 15-10-2001 à 00:27:06  profilanswer
 

"j ai l impression, qu apres :  
char*data=getenv("QUERY_STRING" );  
data n est jamais NULL  "
 
si tu envoies un .cgi sans param la chaine sera NULL. Pour un .cgi qui n'utilise pas de param evidement le test n'a pas d'interet puisque tu ne fais pas de getenv(); par contre si un petit malin s'amuse a lancer ton .cgi sans param alors qu'il en attend et que tu n'as pas le test if(data==NULL) ou dans le même genre alors tu vas avoir un prob car tu ne peux pas faire un malloc de data si data sert au getenv et dans ce cas ta fonction de traitement de param va commencer a traiter une variable qui n'a pas d'adresse. Aie !

n°65367
slvn
Posté le 16-10-2001 à 00:49:34  profilanswer
 

en fait je me sert a la fois de GET et POST pour le mmem cgi, si y a pas de GET, je cherche un POST....
par contre la ou c est Bizare c est que :  
je peux avoir la getenv(QUERY_STRING)!=NULL et strlen(getenv(QUERY_STRING)==0, donc ca foirait mais avec un test en plus c est ok.....
(ps pourtant ca marchait sous windows, avec PWS...)
 
 
pas contre, j ai un autre pb, pour ecrire dans un fichier, :
fopen(...,w) marche
fputs(....) marche  
mais fclose(..) marche pas :((
donc a final, j ai pas de fichier....

n°65369
barbarella
Posté le 16-10-2001 à 01:10:59  profilanswer
 

slt,
 
sous windows et linux ou juste sous linux ? sinon tu as peut-être un prob de droit. Mais bon moi je n'utilise pas ces fonction mais celle qui gère des handle (open/read/write).

n°65486
slvn
Posté le 16-10-2001 à 13:07:11  profilanswer
 

slt,
sous win 98  j ai pas de pb, c sous linux que ca foire... jepense aussi que c estun pb de priviliege

n°65539
barbarella
Posté le 16-10-2001 à 15:18:36  profilanswer
 

j'avour que je n'ai jamais utilisé c'est fonction pour faire du traitement fichier donc je ne sais pas trop.
 
mais il me semble qu'elle utilise un tampon, donc si ton écriture ne dépasse pas la taille du tampon il n'y pas d'écrire physique. par contre le fclose provoque l'écriture physique et c'est lui qui se prend le prob des droits en ecriture.
 
tu peux modifier ces droits avec un ftp. sinon je te conseille d'utiliser les read/write. Quoiqu'il existe pour ces fonctions des diff entre win et linux. Fait un accès telnet et regarde dans le man fopen/fwrite/fclose pour voir leur utilisation il est possible que tu sois obligé d'utiliser des masques ou que les masques standart soit différents


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  cgi c & c sous linux

 

Sujets relatifs
editeur de txt sous linuxSendmail Linux
[C/socket] config sous linuxDriver JDBC sous linux/postgreSQL
[LINUX] Sauvegarder/Restaurer l'etat d'un programmecompilation sous linux
Pb d'accents avec Linux/Apache/PHPProgrammation sous Linux
Linux ? qu'est ce que ça peut apporter de + ?[PHP/APACHE on LINUX] Comment faire en sorte de pouvoir u/l
Plus de sujets relatifs à : cgi c & c sous linux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR