Forum Programmation.c++ pthread : mutex, bien s'en servir

Posté par  . Licence CC By‑SA.
Étiquettes :
0
14
juin
2013

Salut,
Je suis en train de jeter un œil sur pthread (oui je sais C++11 arrive c'est plus la peine)
Mais le bon usage des mutex n'est pas clair pour moi

  • pthread_mutex_lock(&monmutex) : Si je comprend bien, lorsque plusieurs threads vérouillent le mutex, les autres se mettent en attente jusqu'à c que le mutex soit libéré ? 

  • pthread_cond_wait(signal,mutex) Va créer une sorte de slot qui attend un signal et va simplement attendre le signal, mais à quoi sert le mutex ? Est-ce (…)

Forum Programmation.c++ Mutex avec plusieurs lecteurs simultanés

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
13
juin
2013

Bonjour,
dans le cadre d’une implémentation, je veux accéder à des données depuis plusieurs fils d’exécution. Le nombre de lecture étant très supérieur aux nombres d’écriture, je voudrais utilisé des mutex partagés.

std::mutex monMutex;

void lecture()
{
    monMutex.lock(std::mutex::read);
    
    monMutex.unlock();
}

void ecriture()
{
    monMutex.lock(std::mutex::write);
    
    monMutex.unlock();
(…)

Forum Programmation.c++ Conversion en mp3 avec libmp3lame

Posté par  . Licence CC By‑SA.
Étiquettes :
0
12
juin
2013

Salut,

Alors voilà, je suis en train d'essayer de comprendre comment marche la librairie lame pour encoder en mp3, le tout à partir d'un prog C++

Lame est assez mal documenté, j'ai un truc qui compile, qui parfois veut bien tourner (en jouant avec les params) mais clairement pas quelques chose qui marche, à prioris je dois pas comprendre la fonction : 

int lame_encode_buffer_interleaved  (   lame_global_flags *     gfp,short int   buffer[],int    nsamples,unsigned char *  mp3buf,   int     mp3buf_size)    

Voilà comment j'éssaye de (…)

Forum Programmation.c++ Compiler en statique, est-ce vraiment un problème ?

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
2
28
mai
2013

Salut, j'essaie tant bien que mal de compiler un binaire qui puisse tourner sur les distributions les plus célèbres à savoir Ubuntu, Fedora et OpenSuse. Sauf que c'est un vrai casse tête chinois au niveau des dépendances. Je compile sous ArchLinux et forcément j'ai en main les derniers versions de mes libs mais lorsque je décide de lancer mon binaire, l'une de ces distributions fournie jamais la bonne version de la lib.

Je me suis efforcé de rester en dynamique (…)

Forum Programmation.c++ problème de parsing avec CLang

Posté par  . Licence CC By‑SA.
Étiquettes :
3
29
avr.
2013

Salut à tous,
J'essaie de compiler un gros projet (qui compile sous g++ et MSVC avec plein de warning activés et -Werr) avec CLang.
Mais mon projet ne compile pas, j'ai reproduit le problème de compilation avec le petit code suivant:

$ cat clang.cpp

#include <iostream>

template<typename PTR1, typename PTR2>
class Foo
{
private:
    PTR1 _t1;
    PTR2 _t2;
public:
    Foo(PTR1 t1 = NULL, PTR2 t2 = NULL) :
(…)

Forum Programmation.c++ operator new + boost::fast_pool_allocator

Posté par  . Licence CC By‑SA.
Étiquettes :
2
20
avr.
2013

Bonjour,

Dans le cadre d'un de mes projets qui alloue/désalloue beaucoup d'objets de tailles diverses mais relativement petits (< 100o par objets), j'observe une consommation mémoire très supérieur à ce que ça devrait être.
Comme je soupçonne que la mémoire ressemble à du gruyère (plus il y a de gruyère, plus il y a de trous et plus il y a de trous, moins il y a de gruyère), j'ai voulu tester le pool allocator de boost en surchargeant l'operator (…)

Forum Programmation.c++ Une classe pour stocker des données

Posté par  . Licence CC By‑SA.
Étiquettes :
0
29
mar.
2013

Bonjour,

Je suis en train de faire un programme qui devra lire des informations depuis un fichier, et toutes les autres classes devront pouvoir y accéder, sans duplication de données.

Je me demande donc comment faire cela proprement: créer une classe qui contient toutes les autres, une classe globale à tout le programme avec des attributs publics et constants, autre suggestion?

Merci d'avance,

Forum Programmation.c++ Compilateur "streamé"

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
2
24
mar.
2013

Salut à tous,

Je suis entrain de compiler Qt5 en -j5, et je bulle en attendant.

Donc voici:
Aujourd'hui, le processus de compilation, c'est ça:

  • je tape gcc moncode.c -c -o moncode.o
  • le shell lance /usr/bin/gcc dans un nouveau processus et lui passe les options
  • LDD entre en action, reloge les libs dont GCC a besoin (stdlib, ld, environ 500ko)
  • le main est enfin lancé, et parse les arguments
  • gcc va "automatiquement" lancer l'assembleur (ar) et l'éditeur de lien (ld), (…)

Forum Programmation.c++ Mon jeu fonctionne sur Linux

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
19
15
mar.
2013

Hey salut ! Cela fait quelques semaines que j'avais sollicité les conseils de la communauté concernant un jeu que j'avais développé sous Windows en C# avec XNA. J'avais globalement terminé d'écrire l'essentiel du code, mais finalement je souhaitais porter tout le projet sur Linux pour de nombreuses raisons. La première est le manque cruel de shoot'em up sous Linux et la deuxième car j'apprécie énormément ce système d'exploitation. C'est mon premier projet en programmation et mon premier jeu, donc j'espère que (…)

Forum Programmation.c++ Mais pourquoi gcc devient plus strict sur l'ordre des options de compilations ?

Posté par  . Licence CC By‑SA.
Étiquettes :
1
7
mar.
2013

Salut à tous,
J'ai enfin mis une machine à jours de ubuntu 10.4 a 12.4 LTS (Oui je suis à la traine)
et je recompile donc tout les programmes maisons
Voilà que je me tappe le bon vieux undefined reference to
alors que ca marchait sous l'ancienne version

Un peu de googling et je découvre que je dois changer mon Makefile
Avant :

%: %.o 
$(CXX) $(LDFLAGS) -o $@ $^

Après

$(CXX) -o $# $^ $(LDFLAGS)

Pourquoi tant de haine, (…)

Forum Programmation.c++ Problème de templates: undefined reference

Posté par  .
Étiquettes : aucune
0
16
déc.
2012

Salut,

J'essaye de coder une fonction en C++ qui sépare un URI en deux: le protocole, et le reste.

mailto:quux@foo.bar  -> ("mailto", "quux@foo.bar")

La fonction doit donc retourner deux valeur. J'ai utilisé pour cela un conteneur std::pair<std::string, std::string>. Elle prends en argument un std::string.

namespace URI {
    std::pair<std::string,std::string> splitScheme (const std::string & str);
}

Jusque là, pas de problèmes: la fonction était sale mais marchais bien.

Là où ça se gâte, c'est que je ne suis pas sûr (…)

Forum Programmation.c++ Recherche bonne source pour apprendre le C++

Posté par  (site web personnel) .
Étiquettes :
3
23
août
2012

Bonjour à tous,

Voilà, je me dois de passer au C++. J'ai feuilleté google et pleins d'autres sites, puis j'ai pensé que linuxfr.org serait un bon endroit pour avoir quelques avis éclairés sur le sujet.

Je suis à la recherche d'une bonne source d'information pour apprendre le C++. Alors pas forcément la version 2011, puisqu'elle n'est pas vraiment encore utilisée en production.

Je fais appel à la sagesse de la foule ;)

Forum Programmation.c++ OpenMP, synchronisation

Posté par  .
Étiquettes :
3
1
juin
2012

Bonjour tout le monde, j'ai un problème de synchronisation avec openMP:

J'ai un morceau de code multithreadé. En fin de ce bloc, je voudrais synchroniser les données créées par mes différents process.
Pour cela, je dois rapatrier ces données dans celles du thread 0.
Je dois donc absolument attendre que ce dernier ait terminé de travailler avant de commencer la synchro. Pour l'instant, je fais ça :

#pragma omp parallel
{
 Bla
 Bla
 Bla
#pragma omp barrier
 //On est certain
(…)

Forum Programmation.c++ Librairie gestionnaire de version

Posté par  (site web personnel) .
Étiquettes : aucune
0
5
oct.
2011

Bonjours à tous,

Il existe une multitude de gestionnaire de version avec d'un coté, les gestionnaires de versions centralisé, et d'un autre les gestionnaire de version décentralisé.

Je me suis alors posé la question de l'existence d'une librairie C/C++ (ou même dans un autre langage) dont le but sera d'avoir une API commune pour tout les gestionnaires de versions (et un système de backend permettant d'accéder aux gestionnaire de version voulu).

Alors bien sur il ne serait alors plus possible (…)

Forum Programmation.c++ Faire une réduction de code en supprimant les fonctions non utilisées

Posté par  .
Étiquettes : aucune
0
7
sept.
2011

Bonjour,
supposons un code contenant plusieurs classes, pleins de méthodes, mais l'utilisateur n'utilise que 2 classes et sur ces 2 classes uniquement 3 méthodes sur les 10 proposées. Y a t-il un logiciel qui peut, avant la compilation :
* supprimer les classes non utilisées
* supprimer les méthodes non utilisées

Puis une fois cela fait il compile les nouveaux fichiers (bien sûr le code source de départ ne change pas). Le but est d'avoir un programme qui ne contient (…)

Forum Programmation.c++ Savoir où chercher les données utilisées après un make install

Posté par  (site web personnel) .
Étiquettes : aucune
1
3
sept.
2011

Bonjour!

Je viens vous demander conseil pour un problème récurrent que j'ai eu avec tous les jeux que j'ai développé et que je compile à l'aide de cmake.
Comment faire pour qu'après compilation, le jeu cherche les données dans le dossier courant, mais qu'après installation, il aille chercher dans le dossier d'installation? (typiquement /usr/share/nomdujeu)

Je m'explique:
Il me semble que la commande "make install" ne donne lieu à aucune compilation, donc on ne peut changer un define ou une variable (…)

Forum Programmation.c++ DHT

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

Bonjour,

je cherche des exemples d'implémentation et d'utilisation de tables DHT. J'ai trouvé la lib bitdht mais l'exemple me semble pas très parlant et surtout il n'y a pas de doc pour utiliser cette bibliothèque. J'ai aussi testé maidsafe-DHT mais eu des problèmes pour compiler cette lib.

Si quelqu'un a une expérience sur bitdht et quelques docs, sinon j'irais dans le code de retroshare et seeks ...

Quelques docs sur le sujet :

http://blog.notdot.net/2008/6/Nearly-all-DHT-implementations-vulnerable-to-merge-bughttp://blog.notdot.net/2009/11/Implementing-a-DHT-in-Go-part-1http://code.google.com/p/fastdht/

Forum Programmation.c++ [RESOLU]Pas de swapBuffers quand lancé depuis la console (OpenGL, glut,zsh,debian)

Posté par  .
Étiquettes :
1
7
mai
2011

Bonjour, J'ai commencé un projet en C/C++, et je suis confronté à un problème: J'utilise les librairies OpenGL/GLut pour l'affichage, et tout va bien; mis à part quand je lance le programme depuis la console (ce qui est ennuyeux, j'ai besoin de lui passer des arguments).

Le symptôme est le suivant: quand je lance lance mon programme, les fenêtre s'affichent, mais avec pour seules couleurs ce qui était affiché derrière elles au lancement, j'entends mon arrière plan ou une autre (…)

Forum Programmation.c++ Rendu 3D

Posté par  .
Étiquettes : aucune
1
26
avr.
2011

Depuis quelques mois je travaille sur une version de l'algorithme du zbuffer. Celui-ci permet le rendu en "3D" d'objets composés de faces planes (triangulaires ou quadrilatérales). La version que je propose est un algorithme par division de facettes. Deux autres versions sont proposées dans les sources : 1) avec un point de fuite (les lignes parallèles convergent en profondeur vers un point). Cette version n'est pas encore au point. Je dois encore peaufiner les calculs. 2 Une autre version qui (…)