Forum Programmation.c Malloc et pointeur sur structure anonyme

Posté par  (site Web personnel) .
Étiquettes : aucune
0
8
jan.
2012

Bonjour,

J'aimerais que l'on m'explique pourquoi la fonction si dessous fonctionne. Elle renvoie un tableau à deux dimension de Case, un pointeur vers une structure anonyme.

Ce qui m'intrique c'est que je fais map[i][j] = malloc (sizeof(Case)) ce qui devrait m'allouer un pointeur car c'est ce qu'est Case, et pourtant ça m'alloue une structure. Du coup je me dis que malloc à peut-être un comportement spéciale pour les pointeurs vers des structures anonymes.

Voici le code :

typedef struct
{
(…)

Forum Programmation.c Piloter un programme avec pty

Posté par  .
Étiquettes : aucune
0
18
nov.
2011

Bonjour,

Je développe un programme de supervision, acquisition de données et enregistrement dans une base de données.

C'est donc un démon qui se lance au démarrage de Debian, et utilise rsyslog pour envoyer des messages/informations.

J'aimerai ajouter une interface de gestion interne à ce programme, qui créé des menus avec la bibliothèque ncurses.

Ce menu doit être accessible sur une console par SSH, ou en local par un port série.

Mais je ne sais pas trop quelle méthode utiliser.

J'ai (…)

Forum Programmation.c Affichage de caractères grecques UTF-8 dans Xorg

Posté par  .
Étiquettes :
3
10
nov.
2011

Bonjour,

Je travaille sur Debian Squeeze et je cherche a faire une application multilingue, Français et Grec.

Pour les caractères Grecs, on peut utiliser la norme iso8859-7.
C'est la table des caractères Grec moderne sur 8 bits (255 caractères).

On peut utiliser aussi la norme UTF-8 rassemble tout les caractères internationnaux dans 4*8bits.

J'ai fais un premier programme en C encodé en UTF-8, et je le lance à partir d'une console SSH avec PuTTY configuré en UTF-8 :

printf("test FR (…)

Forum Programmation.c Ecritures disques non bloquants

Posté par  .
Étiquettes : aucune
3
28
oct.
2011

Bonjour,

Je développe sur une carte embarquée ARM BeagleBoard xM, sur laquelle j'ai installée Debian.

Le système est installé et boot sur une carte MicroSD.

J'ai un programme C qui a des contraintes de temps de réponse de l'ordre des 50ms à respecter.

Lorsque je lance le programme normalement (./prog), mon temps de réponse est toujours respecté.

Cependant lorsque je redirige la sortie stdout du programme vers un fichier pour faire des logs (./prog > log), le programme se bloque (…)

Forum Programmation.c sendto ne fait pas complètement son boulot

Posté par  .
Étiquettes : aucune
3
21
sept.
2011

Salut à tous,

Je développe un petit programme de socket en mode RAW sous Linux que je pourrais résumer à ceci :

    int i = 0;
    for(i = 0; i < 100; i++)
    {
       sendto(/*blablabla*/);
    }

Lorsque j'exécute mon programme, d'après wireshark et ifconfig, je n'envois que 22 à 23 paquets soit un rendement de... 22 à 23%, évidemment ces chiffres peuvent varier légèrement.
Pour être totalement efficace, je dois ajouter un usleep() qui laisse une petite pause pour laisser (…)

Forum Programmation.c Édition "récursive" des liens modifiée dans les versions récentes de GCC ?

Posté par  (site Web personnel) .
Étiquettes : aucune
0
2
sept.
2011

Plop,

Je viens de tomber sur une question inédite pour moi qui est celle du comportement de GCC face à une utilisation de symboles d'une bibliothèque "lointaine".

Je m'explique. Imaginez la situation suivante : prog -> liba -> libb, ce qui en français donne quelque chose du genre : le programme est liée à la bibliothèque A qui est elle même liée à la bibliothèque B.

Que doit-il se passer si le programme utilise un symbole de la libb (…)

Forum Programmation.c Liaison série gestion de lecture des signaux de contrôles DSR / CTS avec termios

Posté par  (site Web personnel) .
Étiquettes :
1
18
août
2011

Bonjour à tous,

Je sèche un peux sur l'algo de programmation d'une liaison série de type RS232 en utilisant termios pour lire le changement d'état des signaux DSR /CTS.

Dans le cas d'un PC standard linux sur x86 je souhaiterai lire l'état des signaux de contrôles par interruption et non en scrutant toutes les 3ms. Je souhaiterai que ma fonction getDSR soit bloquante et réveillé seulement sur changement d'état. Mais je ne vois pas comment faire ça. Donc je viens (…)

Forum Programmation.c L'opérateur unaire * me laisse perplexe (pointeurs sur fonctions principalement)

Posté par  .
Étiquettes : aucune
0
17
août
2011

J'ai du mal à me faire une idée de son fonctionnement, j'ai l'impression qu'il s'applique tantôt à ce qu'il y a à sa droite, tantôt à ce qu'il y a à sa gauche.

là, l'opérateur s'applique à ce qu'il y a à sa droite :

int * ptr_sur_entier,entier; // déclare un pointeur sur int, et un int, donc c'est équivalent à :
int (*ptr_sur_entier),entier;
pour définir un pointeur sur fonction :
int
(…)

Forum Programmation.c Programmation XML avec C

Posté par  .
Étiquettes :
0
10
juil.
2011

Bonjour,

Je cherche désespérément un livre ou un tuto qui explique la programmation xml en C. Ce qui existe, c'est surtout des infos sur l'utilisation de libxml avec php, ruby, python.

Le but est d'écrire un programme qui lise/écrive du html.

Je vous remercie bien d'avance.

Forum Programmation.c Lancer le programme 'chat' sur un port série

Posté par  .
Étiquettes :
0
26
mai
2011

Bonjour,

Pour lancer une connexion Internet à partir d'un modem, j'utilise le programme "chat" qui permet de lancer des commandes sur port série, en fonction des réponses du modem.

Pour l'utiliser, à partir d'une console Bash il faut que je lance le commande :

"stty -F /dev/ttyMODEM speed 9600"

pour configurer le port série, puis

chat -v -f /etc/chatscripts/gprs-signal <> /dev/ttyMODEM >&0

pour que le script chat dialogue avec le modem.

Il s'agit donc d'une redirection Read & Write des (…)

Forum Programmation.c Interface /sys pour un programme

Posté par  .
Étiquettes : aucune
2
24
mai
2011

Bonjour,

J'aimerai savoir s'il est possible pour un programme C de créer des fichiers d'interface en lecture ou écriture dans un système de fichier tmpfs, comme le fait le noyau dans le répertoire "/sys", pour pouvoir lire des variables d'un programme, ou piloter le programme.

Une autre solution existe mais un peu plus complexe à réaliser, c'est d'utiliser la mémoire partagée.

Forum Programmation.c juste pour le fun je suis tombé sur ce bout de code très ....

Posté par  .
Étiquettes :
4
18
mai
2011

Je suis tombé par hazard sur ce bout de code : Je trouve ça très drôle, comme concept... le programme auto-suicidaire...

#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>

/* 
 * is this the stupidest code all over the world ?
 * or any student first system call code ?
 *
 */

int main(int argc, char *argv[])
{
        if (argc != 2)
        {
                // if the fucking user doesn't give a signal code on args, then kill -9 program
                kill(getpid(),
(…)

Forum Programmation.c compiler pour un autre système cible

Posté par  .
Étiquettes :
3
24
mar.
2011

Bonjour,

Je débute avec le langage vala.
Jusque là tout va bien.

La où ça se corse, c'est que j'ai besoin de faire tourner mon programme sur une autre machine.
J'ai bêtement copier le binaire de A vers B, mais j'ai eu droit à une belle erreur au chargement de librairie partagée glibc (mauvaise version).

Piste n°1: compiler directement sur le système "cible"

J'ai déjà réussi à compiler python 2.7.x sur cette machine, avec support de la zlib qui va (…)

Forum Programmation.c Graphique CPU

Posté par  (site Web personnel) .
Étiquettes : aucune
0
28
fév.
2011

Bonjour.

Pour un petit projet en C et GTK, j'ai besoin d'afficher la consommation cpu de la machine, un peu comme le gnome-system-monitor.
Comme le code source est disponible, je l'ai téléchargé pour virer tout ce qui ne me sert pas et ne garder que le graphique sur la consommation CPU. C'est assez compliqué comme code, il y a du C++ mélangé au C et je ne comprend pas la moitié de ce qui est écrit. Je me demandais si (…)

Forum Programmation.c C et GTK

Posté par  (site Web personnel) .
Étiquettes : aucune
1
6
fév.
2011
Bonjour,

je suis en train d'écrire un logiciel en GTK, j'ai le "cœur" en C (pour le moment tout se lance avec les **argv), et et la partie GTK à part.
C'est la première fois que je développe un truc avec une partie graphique, et je ne sais pas trop comment fusionner les deux. En mélangeant tout ça devient vide assez bordélique, et je doute qu'il s'agisse de la bonne manière de faire.

Pourriez vous m'aider ?

Je suis aussi (…)

Forum Programmation.c Supprimer tous les appels d'une fonction dans l'ensemble du code source

Posté par  .
Étiquettes : aucune
1
27
jan.
2011
Bonjour,

Sur un code source donné (en l’occurrence le code source du driver realtek r8192), je souhaite retirer tous les appels à la fonction printk().

J'ai d'abord pensé à utiliser sed & co pour supprimer les lignes, l'ennuis, c'est que parfois les appels à la fonction s'étendent sur plusieurs lignes, ce qui complique pas mal les choses.

Je précise que je veux vraimentsupprimer les appels, pas juste augmenter la verbosité du message et configurer le gestionnaire de log pour (…)

Forum Programmation.c libtheora

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

J'ai modifié le fichier examples/png2theora.c de la bibliothèque libtheora afin de pouvoir encoder un sldeshow de fichiers png avec une durée attribuée à chaque slide.
La modif fonctionnait bien dans sa première version, mais maintenant j'ai des soucis dans la deuxième version.

Le message d'erreur affiché par le programme:

Could not set keyframe interval to 64.
Internal Theora library error.

Je ne sais pas de quoi il s'agit.

/********************************************************************
* *
* THIS FILE IS PART OF THE OggTheora (…)

Forum Programmation.c Effacer un pointeur fournit par une librairie externe

Posté par  .
Étiquettes : aucune
1
10
nov.
2010
Salut,

J'ai un code en C++ qui appelle une libraire C qui me retourne un tableau


while(...){
tmp tab =GetMachinTruc()
//DoSomething
}


où GetMachinTruc vient de la librairie C

dans le code de UINT16* GetMachinTruc()

tab=malloc()...
return tab


Donc j'ai donc mon tmptab qui est alloué dans GetMachinTruc
ce qui me donne sachant que je suis dans une loop une grosse fuite de mémoire.
Si je fait

while(...) {
UINT16* tmptab=GetMachinTruc
//Do Something with tmptab
free(tmptab)
}

J'ai droit a (…)

Forum Programmation.c Parallelisation d'une boucle (théoriquement) trivialement parallélisable

Posté par  .
Étiquettes : aucune
7
5
nov.
2010
Bonjour, Je dois effectuer un nombre très important de fois la boucle suivante avec un contrainte très forte sur le temps d'exécution:

	for(i = 0 ; i < N ; i++){
		yvar1[i] = yvar1[i] + yvar2[i] + yvar3[i];
		yvar2[i] = yvar2[i] + 2.0 * yvar3[i];
	}
où N est proche de 130000 et yvar* est un tableau de double.

Ce calcul est théoriquement trivialement parallélisable mais malheureusemnt je n'obtiens pas un bon speedup avec plus de deux threads. C'est probablement (…)

Forum Programmation.c plusieurs textdomains pour un gettext

Posté par  .
Étiquettes : aucune
1
10
sept.
2010
Bonjour,

Mon programme utilise plusieurs domaines de traduction : un dans le cœur et un dans un module. Quand le cœur se charge, il fait un textdomain() sur son domaine, puis quand le module se charge, il fait de même. Le problème est qu'une fois que le module le fait, les textes du cœur ne sont plus traduits.

J'ai vu qu'il était possible d'utiliser plusieurs domaines en utilisant dgettext() et en lui passant le domaine en paramètre, mais cette solution est (…)