Hallo,
Ich tu mich grad sehr schwer mit dem Clonebefehl...
Hab mir zum üben ein kleines Beispielprogramm gemacht:
Funktioniert aber gar nicht wie ich will.
Bei mehrmaligem ausführen wird selten THREAD! ausgegeben
manchmal doppelt JUHUUU BIN BOSS
woher kommt das? wieso wird nicht immer THREAD! ausgegeben?
Gruß Nandolf
Ich tu mich grad sehr schwer mit dem Clonebefehl...
Hab mir zum üben ein kleines Beispielprogramm gemacht:
Code:
#define _GNU_SOURCE
#include <stdio.h>
#include <inttypes.h>
#include <stdlib.h>
#include <sched.h>
#include <stddef.h>
#include <signal.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/wait.h>
int fkt(){
printf("THREAD!\n");
return 0;
}
int main ()
{
char *child_stack=(char *)malloc(100);
int pid=
clone(fkt,child_stack+100,CLONE_THREAD|CLONE_SIGHAND|SIGCHLD|CLONE_VM,NULL);
printf("PID:%d\n",pid);
printf("JUHUUU BIN BOSS\n");
if(pid<0) printf("Fehler bei thread anlegen:%s\n",strerror(errno));
waitpid(pid,NULL,0);
return 0;
}
Funktioniert aber gar nicht wie ich will.
Bei mehrmaligem ausführen wird selten THREAD! ausgegeben
manchmal doppelt JUHUUU BIN BOSS
woher kommt das? wieso wird nicht immer THREAD! ausgegeben?
Gruß Nandolf