Forum Programmation.c Performances de memcpy ???

Posté par  .
Étiquettes :
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  .
Étiquettes :
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  (site web personnel) . Licence CC By‑SA.
Étiquettes :
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 essayer de recupérer l'adresse de retour d'une fonction

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
6
22
juil.
2020

bonjour à tous,

J'essaye de récupérer l'adresse de retour stockée dans la pile puis de faire un jump sur cette adresse afin de revenir à mon main, je vous montre mon code puis vous explique ma démarche :

    int addOne ( int value )
    {
        char * ptr = (char*)&value; // la variable value est situé a RBP-0x14
        void (*adresseDeRetour) (void) = (ptr + 28);
        adresseDeRetour();
(…)

Forum Programmation.c Participez au développement de it-edit (Integrated Terminals Editor).

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
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 Traitement du signal

Posté par  .
Étiquettes : aucune
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  (site web personnel) .
Étiquettes : aucune
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  (site web personnel) .
Étiquettes : aucune
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  (site web personnel) . Licence CC By‑SA.
Étiquettes :
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 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 Optimisation... alignement ou taille mémoire

Posté par  (site web personnel) .
Étiquettes : aucune
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 Qui cherche un job ?

Posté par  . Licence CC By‑SA.
Étiquettes :
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 Passage par référence

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
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 GDB : comment afficher le module contenant une fonction dans la pile d'appel ?

Posté par  . Licence CC By‑SA.
Étiquettes :
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  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
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 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 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 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 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 Différence affectation de structure et memcpy

Posté par  (site web personnel) .
Étiquettes : aucune
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.
Étiquettes :
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 porter un logiciel open source depuis Windows

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
3
26
jan.
2018

Bonjour à tous,

Il y a un logiciel open source qui est actuellement sous Windows, et que je suis obligé de faire tourner en VM.

Mais je me demande, si compte-tenu qu'il soit open source en C, si le porter sous Linux serais un gros travail?

Je suppose qu'il faudrait le compiler et en trouvant les dépendance?

Forum Programmation.c difference entre mmap() et read()

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
3
23
avr.
2019

Bonjour à tous,

voila si je veux lire un fichier je peux faire :

int fd = open("fichier_a_lire.txt", O_RDONLY);

et ensuite je peux faire :
read(fd, buffer, 256);

ou faire
void* addr = mmap(NULL,length_of_fichier_a_lire,…, fd, 0);
strncpy( buffer, addr, 256);

mais c'est quoi le mieux?
dans les deux cas le fichier est chargé en RAM par le noyau via l'appel systeme open, donc pourquoi s’embêter avec mmap ?

merci de vos éclaircissements

Forum Programmation.c ASCII, ncurses, souris

Posté par  . Licence CC By‑SA.
Étiquettes :
3
13
sept.
2019

Bonjour à tous,

Je souhaite mettre à jour un éditeur de texte, fonctionnant en mode console (sans interface graphique), traitant le jeu ASCII, que j'ai écrit, en C, et dont voici l'histoire résumée :
1983 : Première version sous MS-DO, écran géré par accès direct en assembler. Il tenait sur 64 Ko, et pouvait gérer des fichiers de 32768 lignes d'au maximum 128 caractères. Pas d'utilisation de la souris.
1990 : Portage sous SCO UNIX, écran géré par curses, portage (…)

Forum Programmation.c IT-Edit (Integrated Terminal Editeur).

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
2
9
avr.
2015

Salut les C de Linuxfr,
je vient vous présenter ma dernière création, IT-Edit un éditeur de texte avec de multiples fonctionnalités. Créer avec GTK+3, gtksourceview3.0 et libvte.

Motivation pour l'écriture de IT-Edit (the Integrated Terminal Editor).

Ont peut diviser les programmeurs selon leur façon de travailler en 2 catégories:

  • Ceux qui utilisent un IDE: un environnement de développement complet.

  • Ceux qui travaillent avec des outils séparés: un éditeur de texte, usage du terminal et (…)