Thread in anderem C-file starten

Gast #1121224
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
Gast
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.
Gast
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?
Gast
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
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
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
Persönliche Seite
> 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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.