thread sur SUN et sur linux [C] - C - Programmation
Marsh Posté le 11-11-2004 à 12:06:39
Il y a des fonctions non-portable dans certaines version de cette lib, sans le code c'est vrai qu on ira pas loin.
Marsh Posté le 11-11-2004 à 12:08:13
Taz a écrit : ton code |
Code :
|
pas taper
ps : regarde pas à la logique du code
Marsh Posté le 11-11-2004 à 12:11:48
heu, se serait possible que se soit a cause de
Code :
|
qui doit etre jsute en dessous du main et pas au milieu ?
Marsh Posté le 11-11-2004 à 12:13:34
declare ca : pthread_t threads[NB_THREAD]; au debut du main
[edit] owned
A mon avis sur sun tu compilais avec un compilateur c++;
Marsh Posté le 11-11-2004 à 13:20:33
Diody a écrit : declare ca : pthread_t threads[NB_THREAD]; au debut du main |
owned par moi en plus
non, j'utilisait gcc, j'ai repris le meme makefile pour compiler ce fichier
Peut etre que les versions de gcc utilisées ne sont pas les memes
Marsh Posté le 11-11-2004 à 14:22:39
Taz a écrit : gcc-3.0 utilise le mode par défaut gnu9x, gcc-2.9 gnu8x |
moi qui ai la mauvaise (?) habitude de déclarer des varaibles un peut partout, j'ai souvent de mauvaises surprise sur mon linux
Marsh Posté le 11-11-2004 à 14:28:12
ce n'est pas une mauvaise habitude du tout. c'est même conseiller. seulement le C ANSI / iso89 ne le permet pas. gcc2.95 ne le permet pas par défaut car il suit l'ANSI. un truc genre -std=gnu9x devrait tout régler quelque soit ton compilateur.
Marsh Posté le 11-11-2004 à 14:34:58
Taz a écrit : ce n'est pas une mauvaise habitude du tout. c'est même conseiller. seulement le C ANSI / iso89 ne le permet pas. gcc2.95 ne le permet pas par défaut car il suit l'ANSI. un truc genre -std=gnu9x devrait tout régler quelque soit ton compilateur. |
ha, tu me rassure
j'essaierai cet option de gcc chez moi, encore merci
Marsh Posté le 11-11-2004 à 14:44:42
Au pire, tu scopes. Je le fais parfois, même en C++ quand j'ai besoin qu'un destructeur soit appellé là ou je veux.
void f()
{
// blablabla
{
phtread_t threads[5];
// lalala, le reste
}
}
Marsh Posté le 11-11-2004 à 14:45:23
Lam's a écrit : Au pire, tu scopes. Je le fais parfois, même en C++ quand j'ai besoin qu'un destructeur soit appellé là ou je veux. |
en fait, il verifie uniquement que les declarations soient en debut de bloc ?
Marsh Posté le 11-11-2004 à 14:49:42
didier1809 a écrit : en fait, il verifie uniquement que les declarations soient en debut de bloc ? |
oui.
Marsh Posté le 11-11-2004 à 11:50:57
bonjour,
j'ai fait un petit programme qui utilise un thread sur une machine sun, en compilant avec -lpthread, ca passe sans probleme. J'ai reprit ce code chez moi, et il ne veut plus compiler : message d'erreur :
gcc -I"." -lpthread -c labo3_main.c
labo3_main.c: In function `main':
labo3_main.c:62: parse error before `threads'
labo3_main.c:66: `threads' undeclared (first use in this function)
labo3_main.c:66: (Each undeclared identifier is reported only once
labo3_main.c:66: for each function it appears in.)
make: *** [labo3_main.o] Erreur 1
evidemment, il y a #include <pthread.h> dans ce fichier
---------------
.