Forum Programmation.c GDB : comment afficher le module contenant une fonction dans la pile d'appel ?

Posté par . Licence CC by-sa
4
24
juin
2014

Bonjour,

Je rencontre une difficulté avec GDB en voulant déboguer un programme. La commande bt permet d'afficher la pile d'appel quand le programme est mis en pause. Parfois, l'affichage retourne les noms des fonctions, parfois, le nom du module (exe ou so) dans lequel se trouve la fonction. Ce que j'aimerais, c'est pouvoir afficher les deux, car je suis parfois perdu pour déterminer les modules impliqués.

Par exemple j'ai :

#0 0x00001234 in une_fonction() ()
#1 0x00f00500 in une_autre_fonction() ()
(...)

Forum Programmation.c Les espacements que mettent les compilateurs C dans les structures sont ils toujours les mêmes ?

Posté par . Licence CC by-sa
3
17
juin
2014

Bonjour,

Je suis entrain d'implémenter une communication entre deux programmes sur un réseau. La communication utilise un protocole au format binaire. Je suis entrain de me poser quelques questions sur l'alignement des structure et surtout l'espacement que mettent les compilateurs pour respecter l'alignement. Voici un exemple de structure :

struct hello {
    uint8_t  version;
    uint16_t id;
    uint32_t name;
};

Les membres ont été volontairement arrangé pour que le compilateur ajoute des espacements. Si j'ai bien compris comment (...)

Forum Programmation.c Qui cherche un job ?

Posté par . Licence CC by-sa
Tags :
4
29
avr.
2014

Bonjour à tous et toutes,
Je poste mon premiers post (j'espère au bon endroit) pour proposer un job à qui est en recherche!

Domaine Sécu/CyberSécu.
Poste: Développeur C (bon niveau ~5ans):
Multithreading, Gestion fine de la mémoire, routines système…
Programmation Sécurisée.
Connaissances en Hardening sous Gentoo.

Salaire: 38K€ / 48K€

Localisation: 78 Proche Versailles.

Si quelqu'un est interressé qu'il n'hésite pas à prendre contact.

A bientôt.
Eden

Forum Programmation.c segfault dans la démo d'ocilib

Posté par . Licence CC by-sa
Tags : aucun
0
15
mar.
2014

Salut,

J'essaie d'exécuter une des démo fournie avec ocilib (qui permet d'accéder à une db Oracle). On voit que la connexion se fait bien, mais l'appli fait un segfault dans la méthode oci_cleanup. J'ai mis un stacktrace pour montrer ça.

Si je fais un code plus compliqué avec des insertions dans une table, les insertions passent mais ça plante à nouveau dans OCI_Cleanup.

Ci-dessous je mets le code de la démo, avec les paramètres de ma connexion. Ensuite le résultat (...)

Forum Programmation.c Stocker directement des pointeurs qui pointent sur des structures

Posté par . Licence CC by-sa
Tags : aucun
0
18
jan.
2014

Bonjour,

Je suis évidemment novice en programmation, et dans l'idée de flemmarder en apprenant des trucs, je bidouille structures et pointeurs…
Expérimenter et rechercher m'ont beaucoup aidé dans ma compréhension des pointeurs, mais j'ai besoin d'un guru pour m'éclairer.

faisons parler le code :

    typedef struct MaStructure MaStructure;
    struct MaStructure
    {
        int State;  //  0
        int Prevstate;  //  -1
        int Position;   //  0
        int Target; //  -100
    };
    MaStructure* Ensemble[3];
        Structure
(...)

Forum Programmation.c Passage par référence

Posté par . Licence CC by-sa
Tags : aucun
4
23
oct.
2013

Je vous préviens tout de suite, ce qui suit est de la grosse question de newbie.

Alors voilà. J'arrive à faire quelques trucs en C, utiliser libcurl par exemple, mais j'ai toujours cette sale impression de ne pas bien saisir la notion de pointeur. Vos explications seront les bienvenues.

Considérant le code suivant :

#include <stdio.h>

void add (int a, int b, int *c)
{
    *c=a+b;
}

int main
(...)

Forum Programmation.c Utiliser le terminal Linux pour compiler en C

Posté par . Licence CC by-sa
Tags : aucun
1
4
juin
2013

Bonjour, je dois réaliser un programme en C sur Linux. Je sais que pour compiler en utilisant le terminal, il faut passer par ces étapes là:

gcc -c exemple.c
gcc -o exemple exemple.o
./exemple

Le fichier .c que je compile doit ouvrir un fichier (fopen, …). Je fait donc un printf("Entrez le nom du fichier") dans mon programme. Cependant, je voudrai savoir s'il est possible, directement sur le terminal, de faire appel à mon fichier tout en passant l'argument, comme (...)

Forum Programmation.c Implémentation d'un équivalent JScience en C

Posté par (page perso) . Licence CC by-sa
0
22
avr.
2013

Bonjour,

Je suis à la recherche d'une lib en C permettant la conversion de type physique, un peu dans la même veine que JScience en Java.
J'avais bien apprécié JScience lors de développements précédents et je me demandais si un équivalent existait en C ?

Mes premières recherche sous DuckDuckGo, me donne ça Tuoml, l'implémentation est en C++, certains d'entre vous aurait un retour d'expérience sur cette lib ?

Je suis preneur même d'une implémentation partielle (ne couvrant pas tous les (...)

Forum Programmation.c [Résolu] Caractères composés

Posté par . Licence CC by-sa
Tags : aucun
0
28
mar.
2013

Bonjour, bonsoir,

J'ai un petit soucis avec les caractères composés. Je vous poste mon code :

#include <stdio.h>
#include <stdlib.h>
#include <ncurses.h>

int ch = 96;

int main(int argc, char **argv)
{
      initscr();
      raw();
      noecho();
      keypad(stdscr, TRUE);
      while(ch != KEY_F(1))
      {
            ch = getch();
            clear();
            printw("char=%c", ch);
            refresh();
      }
      endwin();
      return 0;
}

(...)

Forum Programmation.c Compiler pour Windows avec MinGW (résolu)

Posté par (page perso) . Licence CC by-sa
Tags : aucun
1
21
mar.
2013

Salut, j'aimerais compiler un code pour Windows avec MinGW mais je n'arrive à rien que se soit sous Windows ou Linux. J'ai passé une après-midi entière à tenter de compiler le code avec NetBeans et Code Blocks mais sans succès. Sous Linux, j'ai installé MinGW mais quand je tente d'ajouter le compilateur à la configuration de NetBeans, il me dit qu'il ne trouve rien. J'ai essayé plusieurs versions de MinGW mais c'est toujours le même résultat, alors j'avoue que je (...)

Forum Programmation.c Challenge Codingame n°3

Posté par (page perso) . Licence CC by-sa
Tags :
5
30
jan.
2013

Salut à tous,

Pour ceux qui ont participé au challenge Codingame hier, avez-vous trouvé toutes les solutions ? J'ai terminé à 82 % car ma solution au dernier exercice n'était pas du tout optimisée et dépassait 1sec sur les cas non triviaux. Pour ceux qui ont trouvé, pourriez-vous donner votre solution en commentaire ?

Pour mémoire, les 3 problèmes :

  • coder un mot (chaîne ASCII) en une suite de 0 et d'espaces. 2 blocs par série de bits identiques : un bloc (...)

Forum Programmation.c Unification des commentaires entre plusieurs languages

Posté par . Licence CC by-sa
0
9
jan.
2013

Bonjour,

Dans le cadre de mon travail nous développons une API (en C), qui est ensuite utilisée en Java (au travers de JNI) et en C#.
Je voudrais savoir s'il existe un moyen d'éviter de dupliquer les commentaires (de la librairie en C), dans la mesure du possible, dans le binding JNI/Java et dans celui en C#.
Est-ce que quelqu'un connait un logiciel qui fait ça ou va-t-il falloir que je le code ?

Merci d'avance.

Forum Programmation.c Redefinition of typedef

Posté par (page perso) . Licence CC by-sa
Tags : aucun
0
30
déc.
2012

Bonjour à tous !

Je viens demander de l'aide pour un problème de compilation. J'ai un code qui fonctionne sur ma machine, amd64. En essayant de le compiler sur une autre architecture (arm), j'ai le message d'erreur suivant :

/usr/include/poker-eval/poker_defs.h:52:19: error: redefinition of typedef ‘uint64’
/usr/lib/ocaml/caml/config.h:124:26: note: previous declaration of ‘uint64’ was here
/usr/include/poker-eval/poker_defs.h:79:24: error: redefinition of typedef ‘uint32’
/usr/lib/ocaml/caml/config.h:108:22: note: previous declaration of ‘uint32’ was here

Effectivement, chacune des deux librairies cherche à redéfinir les types si ceux-ci ne sont (...)

Forum Programmation.c Regex et encodage

Posté par .
Tags : aucun
2
28
sept.
2012

Bonjour,

Voilà, dans mon programme j'utilise la fonction regexec qui prend en argument une chaîne que l'utilisateur entre. Jusque là pas de problème, et ca se passe plutôt bien.

Le problème, c'est que ce programme parse un fichier contenant différents path venant d'un Windows XP, dont certaines parties contiennent des accents. Du coup, ma regex 'Rom.o' ne matche jamais 'Roméo'.

Bon, j'ai fini par saisir que mes noms de paths étaient inscrits dans un encodage de 8bits, alors que mon (...)

Forum Programmation.c [cherche IDE] pour prgrammer en C

Posté par .
Tags : aucun
2
16
sept.
2012

Bonjour,
j'imagine que c'est n-ième message de ce genre mais CodeBlock, s'il est complet, me semble trop lourd (il met 30 secondes à se lancer sur mon ordinateur).
Donc j'en cherche un aussi complet (qui s'occupe de mettre les options qui vont bien lors de la compilation par exemple, je crois que c'est vraiment un truc que j'ai pas envie d'apprendre) mais un peu moins lourd.

Ma question donc : qu'utilisez-vous ?

P.S. j'utilise geany aussi pour le html/css tout ça. (...)

Forum Programmation.c Bibliothèque multi-plateforme pour jouer des sons

Posté par .
Tags :
0
9
sept.
2012

Bonjour,

J'utilise pour l'instant SDL_mixer pour jouer des sons, mais je viens de me rendre compte qu'une fois l'audio initialisée, on ne peut pas jouer des sons de n'importe quelle fréquence.

Par exemple si je fais Mix_OpenAudio avec une fréquence de 22050 Hz, alors un son à 16000 Hz sera joué trop aigu.

J'ai lu que c'est une limitation de SDL_mixer. Donc ma question est : quelles autres bibliothèques de son a-t-on (pour Linux et Windows) qui n'ont pas cette (...)

Forum Programmation.c Comment effectuer une tache le plus rapidement possible ? threads / fork() ... ?

0
9
sept.
2012

Bonjour,
en fait j'ai pri un petit exemple : *calculer la somme des nombres premiers en dessous de 2 millions.*

Et J'aimerais effectuer cette tâche le plus rapidement possible, quelque soit les ressources ou la mémoire consommée.
(Enfait, j'ai un même code, et ce que je veux c'est le paralléliser).

Les Threads :

J'ai fait un test dans un langage appelé Scala (proche du java), où j'utilise des threads.
Cependant le résultat n'est pas très concluant : le (...)

Forum Programmation.c XLib: XGetImage sur une Window

Posté par .
Tags : aucun
1
31
août
2012

Bonjour,

J'essaie de capturer l'image d'une fenêtre X11 (une sorte de screenshot dans le code).
J'ai bien récupéré le Display et l'identifiant de la Window.
J'arrive également à récupérer les infos (notamment width et height), mais j'ai une erreur BadValue lors du XGetImage.

Voici l'extrait de code concerné:

XWindowAttributes winAttr;
XGetWindowAttributes(_display, _window, &winAttr);
XImage * image = XGetImage(_display, _window, 0,0, winAttr.width,winAttr.
(...)

Forum Programmation.c retourner un pointeur vers un tableau de pointeurs

Posté par (page perso) .
Tags : aucun
5
19
août
2012

Bonjour,

Je commence le C, et m'entraîne en modifiant un petit logiciel, et je me heurte à des difficultés…

Une fonction teste une expression et retourne un pointeur vers la fin de l'expression si elle est trouvée. J'aimerais qu'elle retourne en outre un pointeur vers le début de l'expression, soit deux pointeurs. Comment faire ça proprement?

Voici un résumé du code actuel:

char *
expmatch (char *s)
{
    return (s+3);
}

int
main
(...)

Forum Programmation.c [Résolu][Xlib] Window : Comment obtenir une fenêtre à partir de son ID ?

Posté par .
2
4
août
2012

**EDIT : J'ai ma réponse.

En réalité, les variables de type "Window" contiennent des int qui sont en fait les ID que l'on retouve (entre autre) avec xprop, xdotool, wmctrl …**


Bonjour, j'ai réalisé une "surcouche" pour gestionnaire de fenêtre (en bash) ; qui permet de gérer ses fenêtres en tuile, sous n'importe quel gestionnaire de fenêtre.

Mon programme utilise pour le moment xdotool, mais je voudrais m'en passer, et recoder moi même ce dont j'ai besoin :
- redimensionner une (...)

Forum Programmation.c Coût d'un accès mémoire.

Posté par .
Tags : aucun
2
25
juin
2012

Bonjour, voila ça fait plusieurs fois que je me pose cette question, que je fais quelques test sans rien trouver de concluant.
Lorsque vous avez à des calculs relativement simples à faire sur un octet, une fonction pure uint8_t (uint8_t); (qui ne fait pas plus de 20 instructions).
Quelle solution adopter pour la performance dans le cas général :

  • une table ?
  • un (gros) switch case, ça revient revient à mettre la table dans le segment texte mais est-ce que l'accès est plus (...)