| Autor |
Nachricht |
pasti
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.03.2003
Beiträge: 324
|
pasti Mitglied
16:18:45 07.09.2003 Titel: |
pthread_create mit C++ |
Zitieren |
Hi,
folgendes Programm funktioniert bei mir nicht:
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | void hallo(void *name)
{
std::cout << "hallo" << std::endl;
pthread_exit((void *) 0);
}
int main()
{
pthread_t t1;
if(pthread_create(&t1, NULL, (void*)&hallo, (void *)"Thread 1") != 0) {
std::cerr << "Fehler ..." << std::endl;
}
return 0;
} | |
Der Compiler ( übrigens gcc version 3.2.3 ) meldet dann folgenen Fehler:
invalid conversion from `void*' to `void*(*)(void*)'
Wenn ich alle Casts entferne gibt er auch eine Fehlermeldung:
Bsp: pthread_create(&t1, NULL, &hallo, (void *)"Thread 1")
Fehler: invalid conversion from `void (*)(void*)' to ` void*(*)(void*)'
Kann mir da jemand weiterhelfen ???
Danke! |
|
|
|
 |
Werbeunterbrechung
|
|
 |
rüdiger
Moderator
Benutzerprofil
Anmeldungsdatum: 11.07.2001
Beiträge: 23067
|
rüdiger Moderator
16:22:54 07.09.2003 Titel: |
|
Zitieren |
die Funktion sollte auch noch void* zurückgeben, deine tut das aber nicht! |
_________________ .
|
|
 |
DrGreenthumb
Mitglied
Benutzerprofil
Anmeldungsdatum: 07.10.2001
Beiträge: 4635
|
DrGreenthumb Mitglied
16:25:15 07.09.2003 Titel: |
$man pthread_create |
Zitieren |
| C++: | void* hallo(void*)
{
...
return 0;
}
pthread_create(&t1, 0, hallo, (void*)"Hallo"); | | |
_________________ main(k){for(k=0;k<125;++k)putchar((k+1)%25? ("[k<qFUF>XB]X=9V=hm9FC"[k/6]-52)&1<<k%6?64:32:10);}
|
|
 |
pasti
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.03.2003
Beiträge: 324
|
pasti Mitglied
21:14:30 09.09.2003 Titel: |
|
Zitieren |
Danke, habs jetzt geschafft!!!
Aber noch eine andere dämliche Frage:
Ist es auch möglich Memberfunktionen einer Klasse int pthread_create zu verwenden?
Habs schon versucht, ist mir aber nicht gelungen. Kennt jemand ein Beispiel oder einen Link?
PS: Hab schon gegooglet bin aber anscheinend kein guter Sucher.
Danke im v******. |
|
|
|
 |
DrGreenthumb
Mitglied
Benutzerprofil
Anmeldungsdatum: 07.10.2001
Beiträge: 4635
|
DrGreenthumb Mitglied
21:37:01 09.09.2003 Titel: |
|
Zitieren |
| pasti schrieb: | Ist es auch möglich Memberfunktionen einer Klasse int pthread_create zu verwenden?
|
nur statische. Mit dem extra-Parameter an pthread_create kannst du aber das Objekt mitgeben:
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Thread
{
public:
Thread()
{
pthread_create(..., _thread, this);
}
void* thread()
{
...
}
private:
static void* _thread(void* This) { return ((Thread*)This)->thread(); }
}; | | |
_________________ main(k){for(k=0;k<125;++k)putchar((k+1)%25? ("[k<qFUF>XB]X=9V=hm9FC"[k/6]-52)&1<<k%6?64:32:10);}
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum nicht antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|