prozesse pid_t / fork()

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • prozesse pid_t / fork()

    hiho

    wir sollen ein programm schreiben welches 100 mal eine ausgabe auf der konsole macht und jede ausgabe soll von einem anderen prozess gemacht werden
    langsam aber sicher drehe ich durch ;D da bei meinen versuchen nicht nur der jeweils NEUE prozess was auf den bildschirm schreibt sondern auch immer wieder der alte

    also so
    1. aufruf ein prozess schreibt
    2. aufruf nicht nur der NEUE sondern auch der ALTE schreibt


    ============================================
    hier mal mein code

    #include <stdio.h>
    int main(void){
    int i,pid,number=6;
    for (i=0; i<number; ++i) {
    pid=fork();
    if (pid==0){
    printf("Child_ID: %d \n",getpid());
    }
    else {
    printf("Parent_ID: %d \n",getpid());
    }
    }
    }
    ============================================
  • 1. Kopiliert den Codebeispiel bei dir? Mein GCC (4.2) braucht noch ein #include <uinstd.h>

    Quellcode

    1. #include <stdio.h>
    2. #include <unistd.h>
    3. int main(void){
    4. int i,pid,number=6;
    5. for (i=0; i<number; ++i) {
    6. pid=fork();
    7. if (pid==0){
    8. printf("Child_ID: %d \n",getpid());
    9. }
    10. else {
    11. printf("Parent_ID: %d \n",getpid());
    12. }
    13. }
    14. }
    Alles anzeigen


    2. Was genau erwartest du? Falls pid==0 wird die Zeile, die mit «Child» beginnt ausgegeben osnst die andere. Scheint bei mir auch soweit zu funktionieren.

    Was genau hast du für eine Ausgabe und was genau dabei willst di nicht mehr haben?
    There are only 10 types of people in the world: Those who understand binary, and those who don't.

    Download meines ersten Spiels:HIER
    Über Feedback würde ich mich freuen ;)
  • hiho ja der code läuft bei mir

    das er nach dem fork() ein child hat und ein parent welches beide etwas anderes machen können ist mir bewust
    uns wurde die aufgabe gestellt 100 verschiedene prozesse zu erstellen die jeder für sich eine ausgabe auf der konsole macht ...ich gebe in meinem bsp code immer die id des prozesses welcher was schreibt auf die konsole mit getpid()

    das problem ist dass ich nicht weiss wie ich das in eine schleife packe da durch fork() im fork() nicht immer nur ein neuer prozess ensteht sondern das ganze in 2^n wächst