Forum Programmation.c pthread : multi-processeur/multi-cœur ?

Posté par  .
Étiquettes : aucune
1
12
jan.
2010
Salut,


Mon programme est codé en C, utilise les thread POSIX de la lib pthread.
Il créer plusieurs thread, un thread par client connecté en TCP/IP.

Ma question : dois-je faire quelques choses pour que chaque thread s'exécute sur un processeur / cœur différent ? si oui, comment optimiser ?

Merci.

Forum Programmation.c Délai pendant l'exécution d'un fwrite

Posté par  (site web personnel) .
Étiquettes :
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 Envoi des commandes en HEXA au port Usbserial (/dev/ttyUSB0)

Posté par  .
Étiquettes : aucune
1
14
déc.
2009
Bonjour,

j'utilise un logiciel qui communique avec le port COM sur Linux en envoyant et recevoir un ensembles de messages.

Pour tracer les messages, j'utilise un sniffer qui me donne les messages envoyés et reçus au port en HEXA.

Ce que je cherche, c'est renvoyer la même séquence de messages mais sous Linux, à l'aide d'un petit programme en C qui ouvre le port série /dev/ttyUSB0 et écrit sur lui.

Mon problème c'est comment écrire sur le port les messages (…)

Forum Programmation.c free apres un Exec

Posté par  .
Étiquettes : aucune
0
7
déc.
2009
Bonjour !! J'execute ce code dans un programme
execvp(arg[0],arg);
Avez vous une idée sur la facon de liberer la memoire allouée pour char ** arg et pour les chaque char* le composant ? Merci d'avance !

Forum Programmation.c debutant en programmation systeme--Fork--Exec

Posté par  .
Étiquettes : aucune
0
3
déc.
2009
Bonjour, Etant debutant dans la programmation systeme, j'essaie de resoudre un exercice sur les processus. Le but de l'exercice est de faire un programme en ligne de commande prenant pour argument une chaine de la forme : " COMMANDE ARGUMENTS &> FICHIER" qui execute COMMANDE ARGUMENT en dirigeant stdin et stderr vers FICHIER. exemple: touch dummy chmod 200 dummy ./programme "cat *.c &> file.out" qui devrait envoyer dans file.out tous les fichiers avec extension ".c" et un message d'erreur pour (…)

Forum Programmation.c Ré-écrire wget

Posté par  .
Étiquettes : aucune
1
14
nov.
2009
Bonjour,

je suis en train de réfléchir à un petit programme (écrit en C) qui doit récupérer le code html d'une page web.
Mais, j'ai envie de pas utiliser la commande wget mais plutôt uniquement des appels systèmes. Comme par exemple open, write et autre joyeuseries.
Mon problèmes et je ne connais pas les appels systèmes qui sont suceptibles de m'interrésser.
J'ai bien récupéré le code de wget mais, les sources sont assez conséquente et je me vois mal éplucher (…)

Forum Programmation.c Driver d'acces mémoire et mode user

Posté par  .
Étiquettes : aucune
1
3
nov.
2009
Bonjour,


dans le cadre d'un projet j'essaye d'optimiser une application qui accède à une mémoire via un driver sous linux 2.4.26 (distribution Arabella pour une carte embarquée).

- Le driver est un développement spécifique qui lit et écrit dans une RAM avec les fonctions read/write. Il est chargé au démarrage avec un 'insmod'.

- L'applicatif transmet à répétition des blocs de données vers le driver avec les fonctions pread / pwrite.

Le problème est que ces appels à répétition du (…)

Forum Programmation.c lowlevellock

Posté par  (site web personnel) .
Étiquettes : aucune
0
23
oct.
2009
Salut,

Décidément c'est ma journée bouteilles à la mer.
Je viens de mettre à jour une FC 9 vers FC 11 et là, surprise j'ai un programme qui ne marche plus. Après un nettoyage complet des binaires, et une recompilation intégrale, le programme s'arrête dans un malloc et attend indéfiniment. Précisément l'attente se produit dans __lll_lock_wait_private() un machin écrit en assembleur de la libc. Le genre de truc que je ne sais pas lire. J'ai un peu de mal à (…)

Forum Programmation.c Utilisation de valgrind/callgrind

Posté par  .
Étiquettes : aucune
0
5
oct.
2009
Sali salut

Je travaille sur un logiciel écrit en C et j'essaie de "profiler" son activité avec callgrind. Le logiciel se comporte ainsi : il démarre et ensuite il fork 1 ou plusieurs fils.

Donc pour utiliser valgrind j'utilise cette commande :

valgrind --trace-children=yes --tool=callgrind --dump-instr=yes src/foo -f foo.conf


Seulement le fichier généré par cette commande concerne uniquement le processus père, et ne m'intéresse pas. Donc j'utilise callgrind_control -d avec en argument le PID du processus fils (que j'ai repéré (…)

Forum Programmation.c Appuie simultané de plusieurs touches

Posté par  .
Étiquettes : aucune
0
6
août
2009

Salut,

J'aimerais récupérer l'état de touches appuyées simultanément. J'arrive à récupérer la dernière touche appuyée sans attendre le retour chariot avec ce code :


	struct termios tattr;
	tattr.c_lflag &= ~(ICANON|ECHO); /* Clear ICANON and ECHO. */
	tattr.c_cc[VMIN] = 0;
	tattr.c_cc[VTIME] = 0;
	tcsetattr (STDIN_FILENO, TCSAFLUSH, &tattr);

	while(1){
		char c = 0;
		if( read(0, &c, 1) != 0 )
			printf("%c\n", c);
	}

J'aimerais aussi récupérer l'état des touches Ctrl Alt et Shift. J'ai l'impression que je n'y arriverai pas avec ce (…)

Forum Programmation.c Snake en SDL

Posté par  .
Étiquettes : aucune
0
25
juin
2009
Bonjour à tous, Pourriez vous me donner vos avis et conseils sur le code suivant? C'est le début d'un snake en SDL. Et de plus deux petites questions: -Tout d'abord concernant l'affichage d'une image lors de la collision, le programme plante. -Ensuite sur le fait que si j'execute le binaire compilé par codeblocks en dehors de cet IDE, il me sort une belle erreur de segmentation. Voila voila, place au code source. Désolé pour le manque de commentaires, je me (…)

Forum Programmation.c Client SOAP en C : quelle bibliothèque utiliser ?

Posté par  .
Étiquettes : aucune
0
11
juin
2009
Bonjour,

le C ne prenant pas nativement en charge le protocole SOAP, quelle bibliothèque tierce me recommandez-vous pour utiliser SOAP en tant que client dans un programme en C ?

Mes recherches m'ont conduit à ces deux bibliothèques :

- csoap [1]
- gsoap2 [2]

Merci d'avance pour vos conseils et retours d'expérience.

[1] http://sourceforge.net/projects/csoap
[2] http://gsoap2.sourceforge.net

Forum Programmation.c Programmer un démineur en C

Posté par  .
Étiquettes : aucune
1
9
juin
2009
Je dois programmer un démineur en C sans bibliothèque graphique. Jusque là ça marche mais je bloque sur la fonction de dévoilement des cases vides. Lorsqu'on choisit une case, s'il y a des mines autour, le programme affiche le nombre de mines S'il y a une mines le programme affiche perdu Mais q'il n'y a ni mines ni mines autour, il affiche seulement "0". Ce qui ne fait pas avancer le jeu. Je voudrais que dans ce cas, le jeu (…)

Forum Programmation.c Socket et bind

Posté par  .
Étiquettes : aucune
0
18
mai
2009
Bonsoir,

Celà fait un moment que je suis dessus, ne m’y connaissant pas trop j’ai appliqué plusieurs solutions glanées sur le net, mais rien à faire.

Je vous présente la partie du code en cause :
29 int listen_socket;
30 struct sockaddr_in localaddr;
31 printf("Network thread started\n");
32 listen_socket = socket(AF_INET, SOCK_STREAM, 0);
33 if(listen_socket == -1) {
34 printf("Error creating socket, aborting!\n");
35 return(0);
36 }
37 bzero(&localaddr, sizeof(struct sockaddr));
38 localaddr.sin_family = AF_INET;
39 int port = 12346;
(…)

Forum Programmation.c Mettre un fichier dans une matrice

Posté par  .
Étiquettes : aucune
0
16
mai
2009
Bonjour les moules !
J'aimerai lire le contenu de ./fichier, qui contient des entiers organisé en tableau, et faire correspondre chacun de ces entiers à une case dans une matrice de type int grille[5][5]

J'ai donc le code suivant :

machin.c

int main(int argc, char *argv[])
{
int caractereActuel, grille[11][11],i,j;

for (i=0;i {
for (j=0;j {
grille[i][j]=0;
}
}

FILE* fichier = NULL;

fichier = fopen("fichieraouvrir", "r+");

if (fichier != NULL)
{
do
{
for(i=1;i {
for(j=1;j {
caractereActuel= fgetc(fichier); (…)

Forum Programmation.c Macro pour définir identifiant uniques

Posté par  (site web personnel) .
Étiquettes : aucune
0
12
mai
2009
Bonjour,

je suis devant un problème àlc... J'ai un fichier en C sur lequel le cpp va passer plusieurs fois pour créer plusieurs version du code. Genre gcc -E test.c > v1.c && gcc -E test.c > v2.c , etc etc
Au final, je vais tout lier ensemble, et ça bloque à cause de définitions multiples de certains symboles. Je ne peux pas utiliser 'static' pour éviter ça :( Je ne peux pas définir de macro en cli (en utilisant (…)

Forum Programmation.c [autotools] recuperer la valeur de $prefix dans un programme apres un ./configure

Posté par  .
Étiquettes : aucune
0
6
mai
2009
bonjour,
J'aimerais recuperer la valeur du prefix d'autoconf dans mon main.c.
J'ai pensé recupérer cette valeur dans config.h en mettant
AC_DEFINE_UNQUOTED([TOTO], [$prefix], toto) dans mon configure.ac
mais voila ce que j'obtiens dans mon config.h après avoir fait un ./configure:

/* toto */
#define TOTO NONE

En revanche si je fais un ./configure -prefix=/abc j'obtiens bien

/* toto */
#define TOTO /abc

Je ne comprends pas pourquoi j'obtiens un NONE dans le 1er cas, $prefix n'est pas censé valoir /usr/local par (…)

Forum Programmation.c Manipulation rapide et légère de données structurées binaires

Posté par  (site web personnel) .
Étiquettes : aucune
1
29
avr.
2009
Cher journal, imaginons que j'ai un programme qui doivent exploiter des données binaires structurées. Genre des paquets avec un header structuré, des données arbitraires de taille variable spécifiée dans le header, et un footer structuré. Structures connues et tout. Imaginons que je veuille accéder (lecture/écriture) aux différents champs contenus dans les différentes structures. "Facile" qu'on peut répondre : il suffit de définir les struct { }; qui vont bien en C et le compilateur fait le reste...

Certes, mais ce (…)

Forum Programmation.c Parser une chaine de caractère en C avec Flex/Bison

Posté par  (site web personnel) .
Étiquettes : aucune
0
28
avr.
2009
Bonjour,

je débute avec Flex/Bison.
J'ai utilisé le tuto sur Lex/Yacc suivant
http://ds9a.nl/lex-yacc/cvs/lex-yacc-howto.html
Mon programme connait désormais le langage suivant
heat on
-> heat is on !
heat off
-> heat is off !
get heat
-> heat is off !
set temperature 10
-> temperature set to 10
get temperature
-> temperature is 10

voir le code sur
Accès web
http://svn.berlios.de/viewcvs/openphysic/compilation/2_yacc/(...)
Accès anonyme
svn checkout svn://svn.berlios.de/openphysic/compilation/2_yacc/thermostat3/

Rem : il faudra que j'améliore le programme pour pouvoir définir des températures (…)