Forum Programmation.c Performances de memcpy ???

Posté par .
Tags : aucun
8
8
fév.
2010
Bonjour chers lecteurs du forum,

Une petite question me tarabuste : je viens de découvrir le benchmark tout simple mbw (pour memory bandwith) qui teste les performance de la machine pour ce qui est de la mémoire. Il est disponible sous debian testing ou à l'adresse http://linux.softpedia.com/progDownload/MBW-Download-12167.h(...) il n'y a pas plus simple : un simple fichier C à compiler).

Il s'agit d'allouer un tableau d'entiers, et de le copier le plus vite possible vers un autre tableau. Le test (...)

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

Posté par .
Tags : aucun
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 FFMPEG Libavcodec

Posté par (page perso) . Licence CC by-sa
6
27
oct.
2014

Bonjour à tous,

Je suis le mainteneur d'une petite distrib (basée sur Xubuntu 14.04) permettant de réaliser des bornes d'arcades avec mame et retroarch. Elle fonctionne pas trop mal et simplifie grandement la configuration.
Comme interface utilisateur j'utilise cabrio-fe cependant il s'agit d'une version que j'ai remanié afin d'apporter de nouvelles fonctionnalités et quelques corrections de problèmes gênants (le projet est plus ou moins à l'abandon), toutefois « ma » version comporte un bug vidéo plutôt gênant.
Malheureusement je ne suis (...)

Forum Programmation.c Traitement du signal

Posté par .
Tags : aucun
5
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 Commande pour le résolveur de la libc

Posté par (page perso) .
Tags : aucun
5
17
août
2010
Vous savez sans doute que les logiciels clients réseau ne font généralement pas eux-mêmes leurs résolutions de noms d'hôtes en adresse IP : ils utilisent des fonctions de la libc, comme gethostbyname(3) ou getaddrinfo(3).

De son côté, la libc utilise le fichier de configuration nsswitch.conf(5) pour déterminer les méthodes à utiliser pour résoudre le nom qu'on lui soumet. En général, c'est :
  1. le fichier statique hosts(5) ;
  2. une requête mDNS ;
  3. une requête DNS.
D'autres méthodes sont disponibles, comme LDAP ou YP.

Avez-vous déjà (...)

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 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 Participez au développement de it-edit (Integrated Terminals Editor).

Posté par (page perso) . Licence CC by-sa
Tags : aucun
5
2
mar.
2016

Bonjours a tous le monde,

j'utilise la ligne de commande Linux au quotidien et j'ai donc développer une sorte de IDE donnant un accès totale a votre système et surtout a des terminaux, pendant l'édition de vos fichiers source.

it-edit n'est pas vraiment un IDE orienter vers un langage,

mais plutôt un éditeur de texte avec terminaux intégrés, capable de lire et surligner beaucoup de langage de programmation,

afin de ne pas perdre de vue la ligne commande pendant (...)

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(),
(...)

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 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 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 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 remise en application d'une gestion commerciale

Posté par (page perso) . Licence CC by-sa
Tags : aucun
4
18
déc.
2016

Bonjour,

Dans les années 80 j'ai créer Gesteco" une application de gestion commerciale axée sur les mouvements de stocks. A partir de cela s'est greffé une gestion des ventes, des clients, des points de ventes. cette application a été commercialisée dans toute l'Europe dans des gestions de parfumeries (Perfum's) de garages , de drink market, enfin de tout ce qui touche à un mouvement de produits avec sa répercussion sur les achats et approvisionnements et ventes avec clients et une (...)

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

Posté par .
Tags :
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 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 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 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 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 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 Délai pendant l'exécution d'un fwrite

Posté par (page perso) .
Tags : aucun
2
15
déc.
2009
Bonjour,
j'ai un programme qui enregistre sur le disque dur des images en provenances de plusieurs caméras. Il tourne en roue libre, le plus vite possible.

L'enregistrement se fait via la bibliothèque gdk-pixbuf. Je fais un appel à gdk_pixbuf_save, qui enregistre l'image dans le format que j'ai choisi. J'ai accès au code de gestion de ce format graphique (je l'ai écrit), et l'écriture des données se fait via un unique fwrite (mais sans fflush ensuite, mais il est normalement fait (...)

Forum Programmation.c Un noyau tout petit, en C(++)

Posté par .
Tags :
2
2
mar.
2010
Bonjour forum !

Aujourd'hui, pour apprendre la programmation des systèmes d'exploitation, je cherche un noyau avec seulement le strict minimum, un code compréhensible, et pas trop "spaghetti".
Plutôt pour faire des expérimentations (Test d'ordonnanceur, test de concept, bidouille). En fait, j'aurai bien essayé avec linux, mais sa complexité me décourage (rien que le nombre de fichier dans le dossier "kernel" fait peur, alors...)

Il faut donc que ce noyau remplisse plusieurs conditions: multitâche (même minimal), possibilité d'être exécuté depuis Qemu (...)

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

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