#include#include #include #include #include #include #include enum { DOC_EXMPL_C_UNSPEC = 0, DOC_EXMPL_C_ECHO, (…)
Forum Programmation.c IPC: mmap() vs shmget()
Jusqu'à présent j'avait toujours associé des segments de mémoire partagés avec l'appel système mmap. Mais cette année, j'ai eu un cours système où on m'a introduit les IPC Système V, et je me demande jusqu'a quel points ils sont utilisés.
Les IPC système V s'utilisent en créant un token avec ftok(). À partir de là il est possible de créer des files de messages (msgget) des segments de mémoire partagés (shmget) ou des sémaphores (semget). Et la commande ipcs (…)
Forum Programmation.c Raw socket (BUG)
J'ai un petit souci avec mon programme. Je suis en train de développer un nouveau protocole sur ethernet. J'utilise donc des RAW socket.
Tout va super bien. J'atteint 1,6 Gb/s sur le loopback avec des packets de 1500 octet (ethernet oblige, si pas de jumbo frame ^_^)
Mon problème vient de la fermeture de ladite socket. La fonction recvmsg ne me retourne jamais -1 quand je ferme la socket.
J'ai isolé le bug ans un petit programme (…)
Forum Programmation.c Optimisation de code C
je cherche à ecrire en C une routine optimisée pour calculer un produit scalaire de deux vecteurs (de taille variable). Comme cette routine sera appelée plusieurs milliers (millions) de fois, je cherche à gagner le moindre cycle processeurs. Ma plate-forme est un athlon-XP (sans SSE2 donc). Pour l'instant j'ai 2 variantes:
* C-pure:
double dot(const double *a, const double *b, unsigned long n)
{
register double res=0.0;
register unsigned long i;
for(i=(n/4)*4; i != 0; i -= 4)
{
(…)
Forum Programmation.c equivalent aux malloc_options
Existe-t-il sous linux un équivalent aux malloc_options de BSD.
Je cherche en effet un moyen de remplir la mémoire par des 1 afin de débusquer d'éventuels bugs.
Merci d'avance.
Forum Programmation.c Problème de valeur hexadécimale dans un paquet ethernet
Mon problème est tout bête, aussi je vais essayer de faire court. J'utilise la librairie pcap dans un projet qui présente des fonctionnalités de sniffing. Je récupère donc mes paquets ethernet, je remplis ma structure ether_header correctement, et là j'ai un gros problème pour lire le champ ether_type qui donne le protocole que couvre la trame ethernet (ip, arp, rarp) : le problème est que d'après les headers de linux, pour IP je dois avoir Ox800 (…)
Forum Programmation.c Indent & makefiles
Ma première question porte sur GNU indent ; j'ai pu l'amener à indenter mon code C à peu près comme je voudrais... sauf pour l'accolade de début de corps de fonctions: je voudrais obtenir:
int main(void){
/* ... */
}
mais à mon grand dam je n'ai pas pu trouver l'option qui va bien. Quelqu'un pourrait-il me tirer d'affaire ?
Deuxième question, à propos des makefiles, ou plus généralement, de l'automatisation du processus de développement d'un projet en (…)
Forum Programmation.c Snake en SDL
Forum Programmation.c libtheora
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 L'opérateur unaire * me laisse perplexe (pointeurs sur fonctions principalement)
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 identifier à coup sur un fichier.
Je désire implémenter une méthode en C qui prend en argument un fichier de type MP3 ou OGG et qui :
- renvoie les informations contenues dans une DB si le fichier est déjà présent
- ajoute le fichier dans la DB avec des valeurs par défaut si il n'est pas déjà présent (et renvoie donc ces valeurs par défaut)
Mon problème est donc d'identifier à coup sur un fichier, mais en le reconnaissant même si il a changé (…)
Forum Programmation.c Accès aléatoire à un fichier d'un répertoire
la fonction que je suis en train d'écrire reçoit en paramètre le nom d'un répertoire.
Elle renvoie un fichier, le plus aléatoire possible, contenu dans le répertoire ou le sous-répertoire.
Le problème, c'est que je viens de me rendre compte qu'en la faisant récursive, plus un fichier est profond dans la structure, moins il a de chances d'être choisi. Et j'aimerais que chaque fichier aie sa chance de manière équitable.
(…)
Forum Programmation.c segfault dans la démo d'ocilib
Salut,
J'essaie d'exécuter une des démo fournie avec ocilib (qui permet d'accéder à une db Oracle). On voit que la connexion se fait bien, mais l'appli fait un segfault dans la méthode oci_cleanup. J'ai mis un stacktrace pour montrer ça.
Si je fais un code plus compliqué avec des insertions dans une table, les insertions passent mais ça plante à nouveau dans OCI_Cleanup.
Ci-dessous je mets le code de la démo, avec les paramètres de ma connexion. Ensuite le résultat (…)
Forum Programmation.c Problème de pointeur ?
Bonjour, je suis nouvelle en programmation et on doit faire un projet dont le but des créer un jeux du style de CandyCrush.
J'ai réussi à créer la matrice des items, a faire déplacer le curseur dans la matrice, à faire changer deux case (même s'il y a un petit problème: je dois appuyer sur n'importe qu'elle touche avant de saisir la case avec laquelle je veux inter-changer), j'ai un petit problème avec le compteur du nombre de coup, et (…)
Forum Programmation.c Une base de donnée intégrée ?
Je suis en train d'écrire un petit programme en C qui tourne sous gnome et qui doit utiliser une base de donnée.
Je cherche un maximum de performance. Il y'a surtout des opérations de lectures, qui sont toutes relativements espacée (quelques dizaines de requètes par minute). Les opérations d'écritures sont quand à elles plus rares.
Le cherche les fonctionnalités suivantes :
- obtenir toutes les propriétés de l'élement UNTEL
- obtenir la propriété X de l'élément UNTEL
- obtenir (…)
Forum Programmation.c code pour faire du xpath avec du xml en C
J'ai un xml avec lequel je voudrais faire du XPath pour recupérer seulement les infos qui m'interesse. J'ai essayer libxml2 mais ca me parait vraiment gros pour faire un truc tout simple. J'utilise déjà expath.
Merci pour toutes suggestions.
Forum Programmation.c GDA + SQLite
Si quelqu'un sait comment résoudre ce problème ou connais un logiciel libre dont je pourrais m'inspirer je suis preneur.
Elihu
Forum Programmation.c SDL2_gfxutils une bibliothèque complémentaire a SDL2_gfx.
Salut les Linuxiens de tout bords,
j'ai créer une bibliothèque partagée complémentaire a SDL2_gfx qui est une extension de la bibliothèque pour la création de jeux vidéo SDL2.
Hors SDL2_gfx est le pendant de SDL2 pour dessiner dans le display et ma bibliothèque permet de générer des formes entre autres fonctionnalités et s'appelle SDL2_gfxutils.
SDL2_gfxutils est une bibliothèque complémentaire a la la bibliothèque SDL2_gfx et donc a SDL2.
SDL2_gfxutils est issue d'une collection de fonctions que j'ai (…)
Forum Programmation.c Fonctions variadiques imbriques
Bonjour
Je bricole sur Arduino et ai les bases très basiques du C. (genre pas super à l'aise avec les pointeurs….)
J'ai besoin d'aide sur les fonctions variadiques imbriquées.
Dans mon code principal, j'appelle la fonction get_data_nesteed1 :
char url[20] = "";
int args_count = 0;
char str1[20] = "";
char str2[20] = "";
get_data_nesteed1( url , &args_count , str1 , str2 );
str1 et (…)
Forum Programmation.c Problème analyseur lexical flex
Bonjour,
Je viens vers vous car je débute avec flex et j'aurais bien besoin de conseils pour me débloquer …
Je cherche à créer un parser avec flex qui va récupérer les noms de fonctions dans un header afin de les réutiliser plus tard. Je désire stocker ces noms de fonctions dans un tableau que j'alloue dynamiquement car je souhaite pouvoir parser n'importe quel header avec (donc n'importe quel nombre de fonctions).
Dans les règles de production flex afin d'identifier (…)
Forum Programmation.c [flux USB] select ne fonctionne pas.
Bonjour,
Je récupère un flux USB brute (sans aucun protocole) via un programme en C.
Le programme fonctionne correctement sans timeout.
Pour ajouter un timeout j'utilise la fonction "select()". Mais cela ne fonctionne pas, pourtant :
- La fonction "open()" fonctionne correctement et retourne 4
- Le timeout de select fonctionne correctement.
- Aucune erreur en retour de select (constamment un timeout)
- Malgré un flux USB entrant, "select()" ne détecte aucun caractère …
Je suis sous Ubuntu 16.04
Je (…)
Forum Programmation.c (re)Programmer un driver pour carte Wifi NetGear MA521
*Realtek fournissait un driver pour le kernel 2.4.20 mais il n'est aparemment plus maintenu.
*Sinon, il faut utiliser le driver loader de linuxant (un peu dommage (…)
Forum Programmation.c bind sur 2 interfaces ethernet
ce que je fais:
- je cree 2 sockets UDP
- je (…)
Forum Programmation.c Structures...
rien ne vaut un bon exemple...
--------------- début du code ----------------
struct structure {
char * a;
char * b;
char * c;
};
#include <stdio.h>
struct structure *wazaa ( )
{
struct structure *to_ret;
to_ret->a = malloc (20*sizeof(char));
to_ret->a = "aaa";
to_ret->b = malloc (20*sizeof(char));
to_ret->b = "bbb";
to_ret->c = malloc (20*sizeof(char));
to_ret->c = "ccc";
return(to_ret);
}
int print_struct ( struct structure *aa )
{
(…)
Forum Programmation.c Récupérer la charge processeur d'une application.
Tout est dans le titre. Je désire afficher dans mon application son pourcentage d'occupation processeur comme peut le faire le logiciel "top". Le tout en C bien sûr.
Merci d'avance pour vos réponses.