C:
#include "stdlib.h"
#include "windows.h"
#include "stdio.h"
#include "conio.h"
#include "time.h"
#include "unistd.h"
FILE *fp;
char Eingabe[4096];
char* stop;
HANDLE hMutex;
DWORD WINAPI Thread()
{
if(WaitForSingleObject(hMutex, INFINITE)==WAIT_OBJECT_0)
{
strcpy(Eingabe,stop);
puts(Eingabe);
}
ReleaseMutex(hMutex);
//[...]
fclose(fp);
remove("Speicher");
//Spuren verwischen
return -2;
//Ende
}
int main()
{
char Satz[4096];
char Analyse[4096];
char* stop;
printf("Gib den Satz ein:\n");
scanf("%[^\n]", &Satz);
stop=strtok(Satz," ");
char Eingabe[4096];
HANDLE hMutex = CreateMutex(NULL,FALSE,NULL);
while(stop!=NULL)
{
strcpy(Eingabe,stop);
CreateThread(NULL, 0, Thread, NULL, 0, NULL);
_sleep(1000);
printf("%d",Thread());
}
printf("\n\n");
system("PAUSE");
CloseHandle(hMutex);
fclose(fp);
return 0;
}
Die [...] stehen für einen langen Code, der meines Erachtens hier nicht relevant ist. Das Programm ist der Lateinübersetzer, bei dem du mir ja schonmal geholfen hast. Hier sollen Sätze analysiert werden, ich arbeite zwecks Übersichtlichkeit mit dem Thread und return-Werten. Jede Form hat ihren eigenen Return-Wert. -2 steht für Error; der Debugger meldet einen Segmentation Fault (Zugriffsproblem - > Mutex). So steht's im Moment. Wenn ihr wollt, gebe ich euch den ganzen Code, mit 900 Zeilen dachte ich aber nicht, ihr möchtet das durchlesen.
Gruss
cwriter