Forum: PC-Programmierung Thread in anderem C-file starten


von Hille (Gast)


Lesenswert?

Hallo zusammen,

ich denke ich habe eine ganz blöde Frage. Aber ich frag sie mal 
trotzdem.

Ich habe ein Thread in der datei x.c geschrieben, möchte diesen aber in 
der Datei xy.c starten.

Ist das überhaupt möglich? Und wenn, wie ist das möglich.
Vielen Dank für eure Hilfe.

Gruß
Hille

von Peter (Gast)


Lesenswert?

ein Thread wird nie in einer Datei gestartet, er wird immer in einem 
Programm gestartet und das ist meist eine Ausführbare datei.

Bitte mal eine etwas genaue beschreibung.

von Hille (Gast)


Lesenswert?

Also. ich habe ein C-File x.c und ein c-File xy.c.

In den x.c file ist ein Thread schrieben.
 #include <cvf.h>

THREAD (clock,arg){

code
{

main

Jetzt möchte ich den Thread nicht über die Main methode aufrufen sonder 
in dem xy.c file.
Ist das über ein header file möglich?

von kernighan (Gast)


Lesenswert?

Stell dir vor, du wärst der Compiler der xy.c Datei.
Beim Compilieren will der Ersteller der xy.c datei den Thread starten,
ohne dass du irgendetwas über den Thread weist, also schmeisst du eine 
Fehlermeldung.

Als schreiber der xy.c Datei musst du den Compiler dazu bringen den 
Thread zu kennen. Dann kann der Linker hinterher den
THREAD mit in die exe/hex/elf...... einbauen.

Kernighan

von Peter D. (peda)


Lesenswert?

Hille wrote:
> ich denke ich habe eine ganz blöde Frage.

Ja stimmt, da muß ich Dir uneingeschränkt recht geben.

In der Codesammlung sind Fragen, die sich nicht auf das Codebeispiel 
beziehen, wirklich ganz blöd.

Ich vermute mal, die Frage gehört in die Rubrik PC-Programmierung.


Peter

von Karl H. (kbuchegg)


Lesenswert?

Peter Dannegger wrote:
> Hille wrote:
>> ich denke ich habe eine ganz blöde Frage.
>
> Ja stimmt, da muß ich Dir uneingeschränkt recht geben.
>
> In der Codesammlung sind Fragen, die sich nicht auf das Codebeispiel
> beziehen, wirklich ganz blöd.
>
> Ich vermute mal, die Frage gehört in die Rubrik PC-Programmierung.

Schwer zu sagen.
Aber ich schiebs mal dorthin

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Also. ich habe ein C-File x.c und ein c-File xy.c.

Schön, sowas gibt es häufiger.

> In den x.c file ist ein Thread schrieben.
>  #include <cvf.h>
>
> THREAD (clock,arg){
>
> code
> {
>
> main

Was was soll das sein? Hä?

> Jetzt möchte ich den Thread nicht über die Main methode
> aufrufen sonder in dem xy.c file.
> Ist das über ein header file möglich?

Normalerweise gibt es eine Funktion, die in einem Thread ausgeführt 
wird. Je nach verwendeten Betriebssystem gibt es wiederum eine Funktion, 
die einen Thread erzeugt, und der wiederum wird ein Pointer auf die im 
erzeugten Thread auszuführende Funktion übergeben.

Steht die Funktion in einer anderen translation unit als der Aufruf 
der Funktion zur Threaderzeugung, so ist die Funktion mit einem 
Funktionsprototypen bekanntzugeben. Dieser wird praktischerweise in 
einer Headerdatei untergebracht, die in die translation unit 
einzubinden ist, in der die Funktion zur Threaderzeugung aufgerufen 
wird.

Der Linker kümmert sich dann um den Rest.

Aus Deinem "Codeschnipsel", also diesem wirrem Geschreibsel da oben, 
kann ich aber nichts ableiten, das erkennen lässt, was Du da eigentlich 
vorhast oder was für eine Art Betriebssystem Du verwendest.

Methoden übrigens gibt es in C nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.