Forum Programmation.c Optimisation... alignement ou taille mémoire

Posté par (page perso) .
Tags : aucun
4
25
mai
2012

Salut,

je me pose une question pour un développement en cours (réseaux neuronaux) vis à vis de l'optimisation niveau perfs.

Je vais avoir des tableaux de structures avec différents champs. Certains champs contiennent des infos qui typiquement tiennent sur quelques bits, et j'hésite entre deux options:

  • utiliser des champs alignés idéalement pour le processeur (32/64 bits)
  • compacter en utilisant par exemple des champs de bits

La première option améliore la vitesse d'accès aux informations par le processeur, mais gâche beaucoup (...)

Forum Programmation.c Différence affectation de structure et memcpy

Posté par (page perso) .
Tags : aucun
3
27
mar.
2012

Bonjour,

Je dev un OS (à titre perso) avec sa libc associée et je viens de résoudre un bug qui affectait bochs mais pas qemu :

En gros, mon application userspace reconfigure le tty pour le passer en raw (copie de la conf courante, passage en raw, application de la nouvelle conf). J'ai donc écrit pour recopier la conf courante : struct termios newt = oldt;
avec oldt un struct termios déclaré juste au dessus et initialisé comme il faut (...)

Forum Programmation.c Compilation gtk+-3.0

Posté par .
Tags :
0
14
mar.
2012

Mazette ! Je n'arrive pas à compiler après plusieurs jours, semaines, etc. Un programme avec automake, autoconf, etc. avec Gtk+-3.0 alors qu'avant tout fonctionnait sur des roulettes.

Mais que diable faut-il faire ?

Je me suis rabattu à compiler un bout de code miteux en gtk :

#include <stdlib.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
    /* Initialisation de GTK+ */
    gtk_init(&argc, &argv);

    return EXIT_SUCCESS;
}

que j'ai compilé (...)

Forum Programmation.c "Classe" GtkButton avec menu en C.

Posté par (page perso) .
Tags :
0
8
mar.
2012

Bonjour,

Parmi les widget Gtk, il n'y a pas de bouton (avec une icone) qui affiche un menu lorsqu'on clique dessus. Bien sur il est possible de le coder en utilisant la fonction pour afficher un GtkMenu.

En fait je l'ai même déjà vu codé proprement avec une classe héritant de GtkToggleButton (en C++ dans Gnote , en Vala dans Gnome-contacts), mais je ne l'ai pas vu en C / Gobject.
Bon ça doit pas prendre longtemps à faire mais (...)

Forum Programmation.c Signaux C PHP UID et permissions

Posté par .
Tags : aucun
1
31
jan.
2012

Bonjour a tous
Je veux creer un processus en C qui repond à des requetes PHP
J'ai choisi de les faire communiquer avec des pipes nommés. Je souhaite utiliser pour cela SIGUSR1 pour dire au processus qu'il y a une requete PHP en attente.
Php a le UID 33 et le GID 33. Quand je lance mon processus, je peux le lancer en root ou avec mon UID 1000. Je me suis par ailleurs ajouté au groupe 33. (la commande (...)

Forum Programmation.c Malloc et pointeur sur structure anonyme

Posté par (page perso) .
Tags : aucun
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 .
Tags : aucun
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 .
Tags :
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 .
Tags : aucun
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 .
Tags : aucun
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 (page perso) .
Tags : aucun
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 (page perso) .
Tags :
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 .
Tags : aucun
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 .
Tags :
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 .
Tags :
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 .
Tags : aucun
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 .
Tags :
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(),
(...)