Forum Programmation.c Utilisation de valgrind/callgrind

Posté par  .
Étiquettes : aucune
0
5
oct.
2009
Sali salut

Je travaille sur un logiciel écrit en C et j'essaie de "profiler" son activité avec callgrind. Le logiciel se comporte ainsi : il démarre et ensuite il fork 1 ou plusieurs fils.

Donc pour utiliser valgrind j'utilise cette commande :

valgrind --trace-children=yes --tool=callgrind --dump-instr=yes src/foo -f foo.conf


Seulement le fichier généré par cette commande concerne uniquement le processus père, et ne m'intéresse pas. Donc j'utilise callgrind_control -d avec en argument le PID du processus fils (que j'ai repéré (…)

Forum Programmation.c Appuie simultané de plusieurs touches

Posté par  .
Étiquettes : aucune
0
6
août
2009

Salut,

J'aimerais récupérer l'état de touches appuyées simultanément. J'arrive à récupérer la dernière touche appuyée sans attendre le retour chariot avec ce code :


	struct termios tattr;
	tattr.c_lflag &= ~(ICANON|ECHO); /* Clear ICANON and ECHO. */
	tattr.c_cc[VMIN] = 0;
	tattr.c_cc[VTIME] = 0;
	tcsetattr (STDIN_FILENO, TCSAFLUSH, &tattr);

	while(1){
		char c = 0;
		if( read(0, &c, 1) != 0 )
			printf("%c\n", c);
	}

J'aimerais aussi récupérer l'état des touches Ctrl Alt et Shift. J'ai l'impression que je n'y arriverai pas avec ce (…)

Forum Programmation.c Snake en SDL

Posté par  .
Étiquettes : aucune
0
25
juin
2009
Bonjour à tous, Pourriez vous me donner vos avis et conseils sur le code suivant? C'est le début d'un snake en SDL. Et de plus deux petites questions: -Tout d'abord concernant l'affichage d'une image lors de la collision, le programme plante. -Ensuite sur le fait que si j'execute le binaire compilé par codeblocks en dehors de cet IDE, il me sort une belle erreur de segmentation. Voila voila, place au code source. Désolé pour le manque de commentaires, je me (…)

Forum Programmation.c Programmer un démineur en C

Posté par  .
Étiquettes : aucune
1
9
juin
2009
Je dois programmer un démineur en C sans bibliothèque graphique. Jusque là ça marche mais je bloque sur la fonction de dévoilement des cases vides. Lorsqu'on choisit une case, s'il y a des mines autour, le programme affiche le nombre de mines S'il y a une mines le programme affiche perdu Mais q'il n'y a ni mines ni mines autour, il affiche seulement "0". Ce qui ne fait pas avancer le jeu. Je voudrais que dans ce cas, le jeu (…)

Forum Programmation.c Client SOAP en C : quelle bibliothèque utiliser ?

Posté par  .
Étiquettes : aucune
0
11
juin
2009
Bonjour,

le C ne prenant pas nativement en charge le protocole SOAP, quelle bibliothèque tierce me recommandez-vous pour utiliser SOAP en tant que client dans un programme en C ?

Mes recherches m'ont conduit à ces deux bibliothèques :

- csoap [1]
- gsoap2 [2]

Merci d'avance pour vos conseils et retours d'expérience.

[1] http://sourceforge.net/projects/csoap
[2] http://gsoap2.sourceforge.net

Forum Programmation.c Mettre un fichier dans une matrice

Posté par  .
Étiquettes : aucune
0
16
mai
2009
Bonjour les moules !
J'aimerai lire le contenu de ./fichier, qui contient des entiers organisé en tableau, et faire correspondre chacun de ces entiers à une case dans une matrice de type int grille[5][5]

J'ai donc le code suivant :

machin.c

int main(int argc, char *argv[])
{
int caractereActuel, grille[11][11],i,j;

for (i=0;i {
for (j=0;j {
grille[i][j]=0;
}
}

FILE* fichier = NULL;

fichier = fopen("fichieraouvrir", "r+");

if (fichier != NULL)
{
do
{
for(i=1;i {
for(j=1;j {
caractereActuel= fgetc(fichier); (…)

Forum Programmation.c Socket et bind

Posté par  .
Étiquettes : aucune
0
18
mai
2009
Bonsoir,

Celà fait un moment que je suis dessus, ne m’y connaissant pas trop j’ai appliqué plusieurs solutions glanées sur le net, mais rien à faire.

Je vous présente la partie du code en cause :
29 int listen_socket;
30 struct sockaddr_in localaddr;
31 printf("Network thread started\n");
32 listen_socket = socket(AF_INET, SOCK_STREAM, 0);
33 if(listen_socket == -1) {
34 printf("Error creating socket, aborting!\n");
35 return(0);
36 }
37 bzero(&localaddr, sizeof(struct sockaddr));
38 localaddr.sin_family = AF_INET;
39 int port = 12346;
(…)

Forum Programmation.c Macro pour définir identifiant uniques

Posté par  (site web personnel) .
Étiquettes : aucune
0
12
mai
2009
Bonjour,

je suis devant un problème àlc... J'ai un fichier en C sur lequel le cpp va passer plusieurs fois pour créer plusieurs version du code. Genre gcc -E test.c > v1.c && gcc -E test.c > v2.c , etc etc
Au final, je vais tout lier ensemble, et ça bloque à cause de définitions multiples de certains symboles. Je ne peux pas utiliser 'static' pour éviter ça :( Je ne peux pas définir de macro en cli (en utilisant (…)

Forum Programmation.c [autotools] recuperer la valeur de $prefix dans un programme apres un ./configure

Posté par  .
Étiquettes : aucune
0
6
mai
2009
bonjour,
J'aimerais recuperer la valeur du prefix d'autoconf dans mon main.c.
J'ai pensé recupérer cette valeur dans config.h en mettant
AC_DEFINE_UNQUOTED([TOTO], [$prefix], toto) dans mon configure.ac
mais voila ce que j'obtiens dans mon config.h après avoir fait un ./configure:

/* toto */
#define TOTO NONE

En revanche si je fais un ./configure -prefix=/abc j'obtiens bien

/* toto */
#define TOTO /abc

Je ne comprends pas pourquoi j'obtiens un NONE dans le 1er cas, $prefix n'est pas censé valoir /usr/local par (…)

Forum Programmation.c Manipulation rapide et légère de données structurées binaires

Posté par  (site web personnel) .
Étiquettes : aucune
1
29
avr.
2009
Cher journal, imaginons que j'ai un programme qui doivent exploiter des données binaires structurées. Genre des paquets avec un header structuré, des données arbitraires de taille variable spécifiée dans le header, et un footer structuré. Structures connues et tout. Imaginons que je veuille accéder (lecture/écriture) aux différents champs contenus dans les différentes structures. "Facile" qu'on peut répondre : il suffit de définir les struct { }; qui vont bien en C et le compilateur fait le reste...

Certes, mais ce (…)

Forum Programmation.c Parser une chaine de caractère en C avec Flex/Bison

Posté par  (site web personnel) .
Étiquettes : aucune
0
28
avr.
2009
Bonjour,

je débute avec Flex/Bison.
J'ai utilisé le tuto sur Lex/Yacc suivant
http://ds9a.nl/lex-yacc/cvs/lex-yacc-howto.html
Mon programme connait désormais le langage suivant
heat on
-> heat is on !
heat off
-> heat is off !
get heat
-> heat is off !
set temperature 10
-> temperature set to 10
get temperature
-> temperature is 10

voir le code sur
Accès web
http://svn.berlios.de/viewcvs/openphysic/compilation/2_yacc/(...)
Accès anonyme
svn checkout svn://svn.berlios.de/openphysic/compilation/2_yacc/thermostat3/

Rem : il faudra que j'améliore le programme pour pouvoir définir des températures (…)

Forum Programmation.c Cherche projet à coder en C uniquement avec la libc standard

Posté par  .
Étiquettes : aucune
1
12
mar.
2009
Bonjour,

Je suis actuellement dans un cursus de Physique (second cycle, M1).

je dois faire un projet en C, mais je ne sais pas quoi écrire. Le cours porte essentiellement sur la librairie standard, donc je ne peux pas (ou ne veux pas) utiliser de bibliothèque tierce.

Je n'ai pas non plus énormément d'heures.

Je voudrai donc écrire un programme sympathique, qui soit éventuellement en lien avec la science, qui nécessite ~2000 lignes de code (si vous pensez que ça (…)

Forum Programmation.c Programmation en C assembleur(realisation d`un chargeur de batterie a energie solaire)

Posté par  .
Étiquettes : aucune
0
12
mar.
2009
Alors voila, en fait je cherche a realiser un chargeur de batterie a cellules photovoltaiques c`est a dire a energie solaire.
Le materiel que j`utilise: un panneau solaire, une batterie rechargeable et bien d`autres...
J`utilise le microcontroleur de microchip PIC16F877A
En fait, une tension va penetrer le CAN(convertisseur analogique numerique) du microcontoleur, comparee a une tension seuil definie a l`interieur du microcontroleur, ce dernier pourra distinguer le jour de la nuit.
En mode nuit, les lampes sont allumees, et la (…)

Forum Programmation.c Addition de flottants

Posté par  .
Étiquettes : aucune
0
6
fév.
2009
Bonjour,

Je recherche à faire l'addition de deux flottants.
Je cherche à ne faire un code du style :

float a=-1.3, b=2.4, c;
c=a+b;


En fait j'aimerais avoir l'algorithme (je ne le trouve nul part) avec les opérations à réaliser sur le bit de signe, sur les bits d'exposant et de mantisse.

Merci !

Forum Programmation.c Se mettre en attente sur le changement de contenu d'un répertoire

Posté par  .
Étiquettes : aucune
0
20
jan.
2009
Bonjour à tous,

Voila mon soucis, je voudrais mettre mon thread en attente sur la création de fichier dans un répertoire précis. Je n'arrive pas à trouver de solution et je n'ai pas envie de mettre en place un polling sur qui liste périodiquement le contenu du répertoire.

Ce qui m'embête c'est que je sais le faire sous l'OS du mal (l'API FindFirstChangeNotification combiné avec WaitForMultipleObjects)....

Bref, aidez moi à montrer encore une fois que Linux peut le faire !

(…)

Forum Programmation.c Raw socket (BUG)

Posté par  .
Étiquettes : aucune
0
19
jan.
2009
Bonjour à tous

J'ai un petit souci avec mon programme. Je suis en train de développer un nouveau protocole sur ethernet. J'utilise donc des RAW socket.

Tout va super bien. J'atteint 1,6 Gb/s sur le loopback avec des packets de 1500 octet (ethernet oblige, si pas de jumbo frame ^_^)

Mon problème vient de la fermeture de ladite socket. La fonction recvmsg ne me retourne jamais -1 quand je ferme la socket.

J'ai isolé le bug ans un petit programme (…)

Forum Programmation.c Thread : comment fonctionne Apache ? comment bien faire ?

Posté par  .
Étiquettes : aucune
0
8
déc.
2008
Bonjour,


Sauriez-vous par hasard fonctionne le principe de threads avec Apache 2 ?


Ma constation ; à (chaque ?) nouvelle connexion, Apache creer un nouveau process en mémoire, mais comment cela marche ?
Quel est le principe même ? comment communique le process pere (le deamon qui receptionne les connexion) vers un nouveau process enfant (qui communique directement avec le client ?) ?


Pour le moment ma methode de conception est la suivante :
Un seul et même process ecoute (…)

Forum Programmation.c capture wireshark sous archi 64 bits et type "long"

Posté par  .
Étiquettes : aucune
1
2
déc.
2008
Bonjour tout le monde,

J'ai un problème: je dois lire des captures de paquets UDP enregistrés par wireshark ou tshark. Entre chaque paquets capturé est inséré une petite structure qui contient un long. Et ce long vaut 32 bits sur une archi 32 bits, et 64 bits sur une archi 64 bits. Jusque la tout va bien.

Le problème est que je dois lire un tel fichier, et que je ne sais pas a priori si les traces viennent d'une (…)

Forum Programmation.c Java et C/C++

Posté par  (site web personnel) .
Étiquettes : aucune
1
13
nov.
2008
Bonjour,

Je voudrais savoir s'il existait des projets permettant de compiler du code C et/ou C++ vers du bytecode Java. je précise bien que je ne parle ni tout ce qui touche à la JNI (qui permet de faire appel à du code machine à partir de la JVM) ni de tout se qui touche à des outils comme GCJ (qui compile du java vers du code machine hôte)

Grosso modo, je voudrais savoir s'il existe un projet qui me (…)

Forum Programmation.c Comment répeter un caractère avec printf

Posté par  (site web personnel) .
Étiquettes : aucune
0
30
sept.
2008
bonjour à tous,

je cherche une solution simple et élégante pour afficher dynamiquement avec la fonction printf une série du même caractère.

je suis sur la piste suivante... (avec gettext pour la localisation (dans le fichier fr.po la chaine "Hello world" est bien sure remplacée par "Bonjour le monde")) :


char *msg = _("Hello world");
printf("\n%s", msg);
printf("\n%*c", strlen(msg), '-');


je veux éviter l'allocation dynamique (si possible)
je pense qu'une belle petite macro serait pas mal pour afficher une série (…)