Forum Programmation.c Intercepter SIGSEGV

Posté par  .
Étiquettes : aucune
0
27
juin
2008
Salut à tous,

J'ai remarqué que quand un programme se prend une erreur de segmentation dans sa poire, il ne flush() pas ses sorties (pas testé pour d'autres signaux). Ça m'embête profondément pour un de mes projets, où les logs seront le seul moyen de déterminer ce qui s'est mal passé. J'ai donc décidé d'intercepter SIGSEGV, et de flush()er dans le handler (si vous avez une meilleure méthode, je suis preneur, sachant que c'est la seule modification autorisée dans le (…)

Forum Programmation.c Select sur un semaphore ?

Posté par  .
Étiquettes : aucune
0
8
juil.
2008
Bonjour cher forum,

Je ne suis pas forcement très rompu à la programmation thread, aussi je bute sur un "petit" problème:

J'ai un thread A qui est connecté à un équipement (un automate dans mon cas) via socket. Il a une liste chainée de messages a envoyer et il reçoit de manière asynchrone des comptes rendu.

J'ai un autre thread B qui lui remplit la liste du thread A.

Je voudrais que le thread A reste en attente sur le (…)

Forum Programmation.c Connexion à 1 ligne ADSL

Posté par  .
Étiquettes : aucune
0
10
juil.
2008
Bonjour,
Je cherche à effectuer une connexion à la ligne ADSL à partir de fonctions codées en C.
Pour cela, je veux réaliser une connexion PPP.
Dois-je d'abord passer par la couche RIP?
Est ce que le protocole : PPPoE peut convenir ou seul PPPoA peut convenir?
Je me pose cette Q car sur la toile (e.g : koders.com), on trouve surtout des codes sources pour la PPPoE.
Merci par avance
Clém

Forum Programmation.c Xlib et evênements souris

Posté par  .
Étiquettes : aucune
0
18
août
2008
Bonjour,

je souhaite faire un petit programme en C qui intercepte tous les clicks souris pas seulement ceux sur une fenêtre précise, est ce possible?
Si oui comment? (la Xlib n'est peut être pas la bonne solution).

Pour être plus clair, je voudrais implémenter l'équivalent d'un hook souris sous windows afin de pouvoir gérer les évênements souris sur une vidéo jouée grâce à la libVLC (qui consume tous les évênements souris empêchant au développeur de les gérer).

La solution du (…)

Forum Programmation.c memoire pas libérée apres ecriture dans un fichier ?

Posté par  .
Étiquettes : aucune
0
17
juil.
2008
Bonjour,

Je trouve étrange le comportement suivant:
J'ai un programme C qui fait un malloc, ouvre un fichier, le remplit avec le contenu du buffer alloué par le malloc, puis le ferme. Le programme sort alors après avoir libéré la mémoire allouée et fermé le fichier.

Quand je le lance, je vois la mémoire utilisée augmenter (normal, il y a eu un malloc). Par contre quand le programme sort, la memoire ne descend pas (je peux le voir avec le (…)

Forum Programmation.c Problème pour l'affichage du contenu de plusieurs répertoires

Posté par  .
Étiquettes : aucune
0
27
sept.
2008
Salut à tous !!

Je dois faire un petit programme qui affiche les éléments d'un dossier en C (comme ls).
Le problème c'est que le premier répertoire s'affiche bien.

Mais après j'ai un
*** glibc detected *** tri: corrupted double-linked list: 0x0804c140 ***

Je pense qu'il y a un soucis au niveau de mon free()

Le voici : http://pastebin.com/m30d082ce

Merci de m'éclairer sur mon problème, car c'est embêtant de pas trouver où est l'erreur.

Forum Programmation.c le nouvel anjuta

Posté par  .
Étiquettes : aucune
0
28
sept.
2008
je suis en train de tester anjuta 2.4.2 et glade 3.4.5


après la compilation du projet gtk jojo
je le démarre en console dans src ça marche
si il n'a pas le jojo.glade à coté il me jette

quand je fais le paquet .deb il y a:
/usr/bin/jojo
/usr/share/jojo/glade/jojo.glade

je l'installe et démarre et il répond:

rob2@ordi2:~$ jojo

(jojo:23903): libglade-WARNING **: could not find glade file 'jojo.glade'

(jojo:23903): libglade-CRITICAL **: glade_xml_signal_autoconnect: assertion `self != NULL' failed

(jojo:23903): libglade-CRITICAL **: glade_xml_get_widget: (…)

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 (…)

Forum Programmation.c Traitement du signal

Posté par  .
Étiquettes : aucune
0
4
oct.
2008
Salut à tous !!

Je m'intéresse au traitement du signal et je me demandais si il était possible de donner à un signal l'utilisation d'une procédure, sous la forme :

void maProcedure(void)


car un
signal(SIGINT, maProcedure)
me donne comme erreur passing argument 2 of ‘signal’ from incompatible pointer type, ce qui est normal.

Pourtant, je pense qu'il est possible d'affecter à un signal autre chose qu'un void action(int) ?

Merci pour votre aide :)

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 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 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 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 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 [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 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 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 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 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 lowlevellock

Posté par  (site web personnel) .
Étiquettes : aucune
0
23
oct.
2009
Salut,

Décidément c'est ma journée bouteilles à la mer.
Je viens de mettre à jour une FC 9 vers FC 11 et là, surprise j'ai un programme qui ne marche plus. Après un nettoyage complet des binaires, et une recompilation intégrale, le programme s'arrête dans un malloc et attend indéfiniment. Précisément l'attente se produit dans __lll_lock_wait_private() un machin écrit en assembleur de la libc. Le genre de truc que je ne sais pas lire. J'ai un peu de mal à (…)

Forum Programmation.c debutant en programmation systeme--Fork--Exec

Posté par  .
Étiquettes : aucune
0
3
déc.
2009
Bonjour, Etant debutant dans la programmation systeme, j'essaie de resoudre un exercice sur les processus. Le but de l'exercice est de faire un programme en ligne de commande prenant pour argument une chaine de la forme : " COMMANDE ARGUMENTS &> FICHIER" qui execute COMMANDE ARGUMENT en dirigeant stdin et stderr vers FICHIER. exemple: touch dummy chmod 200 dummy ./programme "cat *.c &> file.out" qui devrait envoyer dans file.out tous les fichiers avec extension ".c" et un message d'erreur pour (…)

Forum Programmation.c free apres un Exec

Posté par  .
Étiquettes : aucune
0
7
déc.
2009
Bonjour !! J'execute ce code dans un programme
execvp(arg[0],arg);
Avez vous une idée sur la facon de liberer la memoire allouée pour char ** arg et pour les chaque char* le composant ? Merci d'avance !