Est-ce que quelqu'un peut m'envoyer un petit bout de code pour me montrer comment on utilise cette fonction...
Est-ce qu'il faut faire appel à un header particulier ?
Merci pour vos réponse
Une question qui pourrait m'être utile pour la suite, où est-ce que je peux trouver des informations concernant les libraires et les fonctions disponible du système ?
Merci, ca marche ! J'ai juste un avertissement, je ne sais pas à cause de quoi c'est... :
getenv.c:9: Warnung: implicit declaration of function `strdup'
getenv.c:9: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
Avec python, le programme que tu généres à besoin de librairies de python pour fonctionner sur le poste client, non ?
Est-ce que tu peux utiliser toutes les librairies du système aussi ?
Encore une fois merci pour ton aide... :p
Je recois un message d'erreur comme quoi il y a un problème de compatibilité avec le type du pointeur à la ligne :
quoted_env = strdup("NULL");
Je ne comprend pas trop, tu me dis qu'il est mieux d'utiliser glib pour manipuler ce genre de chose, je pensais qu'en programmant en c j'utilisait automatiquement glib ?
Quel language est selon toi plus adapté ? C++ ?
Vu que c'est pour un client léger, il faut qu'il y ait le moins de librairies exterieures possibles... C++ est-il à certains égards plus simple ou est-ce que c'est purement du c avec les objets en plus ?
J'ai essayé en fait sans utiliser la fonction dans une autre fonction, j'ai simplement compiler mes fichiers et celui de confloader comme tu m'as indiqué et obtenu l'erreur plus haut...
J'ai ensuite essayé d'ajouté le tableau dans ma fonction main, comme dans la doc et recompilé, même erreur !
confloader.o(.text+0x91): In function `confparse':
: undefined reference to `conf'
confloader.o(.text+0xb3): In function `confparse':
: undefined reference to `conf'
confloader.o(.text+0xc3): In function `confparse':
: undefined reference to `conf'
confloader.o(.text+0xd4): In function `confparse':
: undefined reference to `conf'
confloader.o(.text+0x13b): In function `getconf':
: undefined reference to `conf'
confloader.o(.text+0x152): more undefined references to `conf' follow
collect2: ld returned 1 exit status
J'ai essayé, mais j'ai une erreur de syntaxe dans le makefile justement là ou il y a la ligne "make -C confloader"
Voilà l'erreur :
"Makefile:24: *** missing separator."
Merci pour ce programme, j'ai en revenche du mal à le faire fonctionner.
Lors de la compilation, j'ai eu une erreur, ou plutot un avertissement :
pavlovix:/prog_TS/confloader-0.1# make
gcc -Wall -pedantic -ansi -O3 -c confloader.c -o confloader.o
confloader.c:179:22: Warnung: Verwendung von C99 hexadezimaler Gleitkommakonstante
confloader.c:179:41: Warnung: Verwendung von C99 hexadezimaler Gleitkommakonstante
Je ne sais pas si c'est normal ?
Deuxièmement, étant nouveau dans la programmation en c pour linux, je ne sais pas trop comment intégrer confloader dans mon code, j'ai fait comme indiqué dans la doc, j'ai crée un sous repertoire, maintenant comment faire au niveau de la compilation ?
J'imagine que je dois compiler mon programme avec confloader
gcc moprog.c confloader.c -o monprog.o ??
Mais qu'est ce que je dois faire du confloader.h ?
Désolé pour cette question qui doit être stupide, mais j'ai encore du mal à comprendre l'utilité et le conctionnement des headers, tout comme les casts... sujet pas abordé dans mon livre :(
Voilà le code que j'ai trouvé et modifier (il était en main() avant)
Le problème c'est que le sprintf provoque un buffer overflow, j'ai des problèmes pour comprendre ces erreurs là.
D'après ce que j'ai compris, il vaut mieux mettre les valeurs dans un buffer :
char macaddress[128];
sprinf(macaddress...);
mais à ce moment là comment faire pour le return, ca n'a pas l'air de marcher ! il faut utiliser une autre commande ?
Pour que je comprenne un peu mieux, quelle est la taille maximum d'un char * ?
Désolé d'assommer tout le monde avec mes questions de newbie, mais mon livre ne couvre pas ces questions de base
Mes plus plattes excuses, j'ai mal lu ton message...
Lorsque j'ai vu google, je me suis dis ca y est c'est typique, encore quelqu'un qui me renvoie bêtement sur Internet comme si je n'avais jamais touché de navigateur de ma vie...
Donc encore une fois "excuses-moi", et merci pour ta réponse
Pour tout te dire, ce code ce destine à Thinstation, soit une version minimaliste de linux, d'où le besoin d'écrire le programme en c (parce que d'ajouter python ou perl augmenterai la taille de l'OS, et ne serait pas forcement performent sur une toute vieille becane)
En fait, dans mon cas, l'interface qui m'intéresse est toujours eth0, donc ca simplifie le probleme...
De chercher l'information dans ifconfig, j'y ai aussi pensé, mais quand je me suis apercu qu'il n'y avait pas de fonctions substring et autres et qu'il fallait passer par la mémoire etc... j'avoue que j'ai pris peur ;) et je me suis aussi dit qu'il devait bien y'avoir un moyen plus direct de faire ca et que c'était un peu bête d'utiliser un programme (ifconfig) qui cherche aussi l'information quelque part... pour ensuite rechercher dans la sortie standard... conceptuellement je trouvais ca un peu dommage, mais si tu pense que c'est le mieux... je vais bien y etre obligé.
[^] # Re: man gethostname
Posté par bue . En réponse au message comment récupérer le HOSTNAME ?. Évalué à 1.
Est-ce qu'il faut faire appel à un header particulier ?
Merci pour vos réponse
Une question qui pourrait m'être utile pour la suite, où est-ce que je peux trouver des informations concernant les libraires et les fonctions disponible du système ?
[^] # Re: Correction
Posté par bue . En réponse au message Pointeur et chaines de caractères.... Évalué à 1.
-après le return dans la fonction
-dans la fonction appelante, une fois que le pointeur n'est plus utilisé ?
Est-ce qu'il libere la mémoire de toutes les variables crées avec malloc, ou est-ce qu'on peut faire free(variable ou pointeur); ?
[^] # Re: Correction
Posté par bue . En réponse au message Pointeur et chaines de caractères.... Évalué à 1.
getenv.c:9: Warnung: implicit declaration of function `strdup'
getenv.c:9: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
Avec python, le programme que tu généres à besoin de librairies de python pour fonctionner sur le poste client, non ?
Est-ce que tu peux utiliser toutes les librairies du système aussi ?
[^] # Re: Correction
Posté par bue . En réponse au message Pointeur et chaines de caractères.... Évalué à 1.
[^] # Re: Désolé
Posté par bue . En réponse au message Lire facilement un fichier de configuration. Évalué à 1.
Pourrais-tu me donner un bout de code ou les fonctions sont utilisées ? Ca manque sur le site...
Merci pour ta patience, c'est mon tout premier programme, et j'ai encore beaucoup de choses qui m'échappent en c ;)
[^] # Re: Désolé
Posté par bue . En réponse au message Lire facilement un fichier de configuration. Évalué à 1.
J'ai ensuite essayé d'ajouté le tableau dans ma fonction main, comme dans la doc et recompilé, même erreur !
[^] # Désolé
Posté par bue . En réponse au message Lire facilement un fichier de configuration. Évalué à 1.
[^] # Re: pub éhontée
Posté par bue . En réponse au message Lire facilement un fichier de configuration. Évalué à 1.
[^] # Re: pub éhontée
Posté par bue . En réponse au message Lire facilement un fichier de configuration. Évalué à 1.
Lors de la compilation, j'ai eu une erreur, ou plutot un avertissement :
pavlovix:/prog_TS/confloader-0.1# make
gcc -Wall -pedantic -ansi -O3 -c confloader.c -o confloader.o
confloader.c:179:22: Warnung: Verwendung von C99 hexadezimaler Gleitkommakonstante
confloader.c:179:41: Warnung: Verwendung von C99 hexadezimaler Gleitkommakonstante
Je ne sais pas si c'est normal ?
Deuxièmement, étant nouveau dans la programmation en c pour linux, je ne sais pas trop comment intégrer confloader dans mon code, j'ai fait comme indiqué dans la doc, j'ai crée un sous repertoire, maintenant comment faire au niveau de la compilation ?
J'imagine que je dois compiler mon programme avec confloader
gcc moprog.c confloader.c -o monprog.o ??
Mais qu'est ce que je dois faire du confloader.h ?
Désolé pour cette question qui doit être stupide, mais j'ai encore du mal à comprendre l'utilité et le conctionnement des headers, tout comme les casts... sujet pas abordé dans mon livre :(
# Probleme d'overflow ?
Posté par bue . En réponse au message comment récupérer l'adresse mac du pc ou s'execute le programme. Évalué à 1.
Le problème c'est que le sprintf provoque un buffer overflow, j'ai des problèmes pour comprendre ces erreurs là.
D'après ce que j'ai compris, il vaut mieux mettre les valeurs dans un buffer :
char macaddress[128];
sprinf(macaddress...);
mais à ce moment là comment faire pour le return, ca n'a pas l'air de marcher ! il faut utiliser une autre commande ?
Pour que je comprenne un peu mieux, quelle est la taille maximum d'un char * ?
Désolé d'assommer tout le monde avec mes questions de newbie, mais mon livre ne couvre pas ces questions de base
[^] # Re: ioctl et SIOCGIFFLAGS
Posté par bue . En réponse au message comment récupérer l'adresse mac du pc ou s'execute le programme. Évalué à 1.
Lorsque j'ai vu google, je me suis dis ca y est c'est typique, encore quelqu'un qui me renvoie bêtement sur Internet comme si je n'avais jamais touché de navigateur de ma vie...
Donc encore une fois "excuses-moi", et merci pour ta réponse
[^] # Re: allocation de chaine
Posté par bue . En réponse au message Probleme de memoire, sprintf. Évalué à 2.
[^] # Re: http://www.brics.dk/~kasperd/comp.os.linux.development.faq.html
Posté par bue . En réponse au message comment récupérer l'adresse mac du pc ou s'execute le programme. Évalué à 1.
Un GRAND merci !
[^] # Re: Euh
Posté par bue . En réponse au message comment récupérer l'adresse mac du pc ou s'execute le programme. Évalué à 1.
Pour tout te dire, ce code ce destine à Thinstation, soit une version minimaliste de linux, d'où le besoin d'écrire le programme en c (parce que d'ajouter python ou perl augmenterai la taille de l'OS, et ne serait pas forcement performent sur une toute vieille becane)
En fait, dans mon cas, l'interface qui m'intéresse est toujours eth0, donc ca simplifie le probleme...
De chercher l'information dans ifconfig, j'y ai aussi pensé, mais quand je me suis apercu qu'il n'y avait pas de fonctions substring et autres et qu'il fallait passer par la mémoire etc... j'avoue que j'ai pris peur ;) et je me suis aussi dit qu'il devait bien y'avoir un moyen plus direct de faire ca et que c'était un peu bête d'utiliser un programme (ifconfig) qui cherche aussi l'information quelque part... pour ensuite rechercher dans la sortie standard... conceptuellement je trouvais ca un peu dommage, mais si tu pense que c'est le mieux... je vais bien y etre obligé.
[^] # Re: ioctl et SIOCGIFFLAGS
Posté par bue . En réponse au message comment récupérer l'adresse mac du pc ou s'execute le programme. Évalué à 1.