The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Hoog Niveau Programmering
.
google unix.com



Hoog Niveau Programmering Post vragen over C, C + +, Java, SQL, en andere programmeertalen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
hel & wiskunde ogoy Programmeren en Shell Scripting 5 05-26-2008 10:58 PM
hel en sqlite ogoy Programmeren en Shell Scripting 2 05-21-2008 12:07 AM
rpm hel! knmwt15000 UNIX voor Dummies Questions & Answers 7 03-27-2002 06:06
negatieve UID / GID?! Ik zie 'em maar wat doen ze betekenen? hellz UNIX voor Dummies Questions & Answers 2 09-07-2001 03:18 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 01-22-2002
theultimatechuf theultimatechuf is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2002
Locatie: Verenigd Koninkrijk
Posten: 6
Angry fork () ing hell!

Hallo ik ben met ernstige problemen met de vork commando, i wezen wilt maken 9 of 10 kinderen en hun pid nummers opslaan in array, terwijl de kinderen verblijft totdat ik doden () ze later, kan ik niet lijken te bepalen hoe veel worden gedaan als ze lijken allemaal op hun eigen kinderen.

Ik heb weten te stoppen crashen mijn systeem, kan iemand helpen alstublieft, geen van mijn boeken zijn elk gebruik.
  #2 (permalink)  
Old 01-22-2002
aniruddha aniruddha is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2002
Locatie: Pune, India
Posten: 3
Dit is een zeer veel voorkomend probleem geconstateerd met een vork.
U kunt enkele vlag variabele die zullen voorkomen dat het kind proces tot bord weer wanneer de ouder vorken.

Een zeer primitieve code kan worden somthing like this: --

# include <stdio.h>
# include <unistd.h>
# include <errno. h>

void main ()
(
int child1, child2, Val, if_child;
char err [1000];

if_child \u003d 1;

memset (err, '\ 0', strlen (err));

printf ( "\ nParent proces-ID is% d \ n", getpid ());

child1 \u003d fork ();
if (child1 \u003d\u003d -1)
(
strcpy (err, strerror (errno));
)
anders
(
if (child1> 0) / * Als vork commando succesvol is kind PID zal groter zijn dan nul. * /
(
printf ( "\ nHet child1 proces-ID is% d \ n", child1);
if_child \u003d 0;
/ * Stel de vlag hier om te voorkomen dat kinderen vanaf forken * /
)
)

memset (err, '\ 0', strlen (err));

if (if_child \u003d\u003d 0)
(
child2 \u003d fork ();
if (child2 \u003d\u003d -1)
(
strcpy (err, strerror (errno));
)

printf ( "\ nHet child2 proces-ID is% d \ n", child2);

doden (child2);
)


doden (child1);

exit (0);
)
  #3 (permalink)  
Old 01-22-2002
theultimatechuf theultimatechuf is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2002
Locatie: Verenigd Koninkrijk
Posten: 6
Bedankt, ziet er veelbelovend uit, ik kijk uit naar de dag waarop ik antwoord van iemand anders * NIX programmig vraag. Looks like it's zal het langer duren dan bij de VB.
  #4 (permalink)  
Old 01-23-2002
bb666 bb666 is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2002
Locatie: romania
Posts: 10
Ik had hetzelfde probleem met een van mijn projecten (u kunt zien wanneer de draad te noemen 'het maken van een proces-boom') en meer kind processen dan ik had verwacht was echt een vervelend probleem.
Nog steeds niet uit te vinden hoe het werkt precies maar ik hoop aniruddha advies helpt mij ook.
  #5 (permalink)  
Old 01-24-2002
theultimatechuf theultimatechuf is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2002
Locatie: Verenigd Koninkrijk
Posten: 6
Dankzij annibuddha (was dat hoe je het spellen?) Zien bb666 na Ik dacht dat ik zou na dit ...

Ik had een beetje moeite zoals ik de toegevoegde meer kinderen, maar besloot voor het opslaan van de moedermaatschappij ID bij het begin:

pid \u003d getpid ()

dan laat ik net gecontroleerd de variabele die ik heb begrepen zou worden in alle kinderen tegen tegen getpid ()

namelijk ervoor zorgen dat een kind proces stopt en wacht altijd nadat het werd gemaakt:

if (pid! \u003d getpid ()) // dit is niet de moedermaatschappij
for (;;)

vervolgens de processen gewoon zitten, totdat zij worden gedood (hopelijk)

Laatst gewijzigd door theultimatechuf; op 01.24.2002 06:13 PM..
  #6 (permalink)  
Old 01-25-2002
bb666 bb666 is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2002
Locatie: romania
Posts: 10
Yep. Dat is een manier om dit te doen of je kunt gewoon stoppen met het verzenden van een signaal, zodat het kind zal geen afval uw geheugen voor niets. Vervang gewoon voor (;)
met doden (getpid (), "SIGSTOP).
Dat is allemaal prima en dandy, maar wat als u wilt dat het kind proces om daadwerkelijk iets doen? Want als je stopt of stuur het in een oneindige lus dan kun je niet helemaal werken binnen het kind kan je?
Dat is eigenlijk het onderdeel Ik ben geïnteresseerd in: werken binnen het kind, maar voorkomen dat het forken zodra de moedermaatschappij vorken opnieuw.
  #7 (permalink)  
Old 01-26-2002
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Locatie: Ashburn, Virginia
Berichten: 9.111
Jullie zijn deze veel moeilijker dan het moet worden. Laten we beginnen met forken een verwerken en opslaan van zijn pid:
Code:
#include &lt;stdio.h>
#include &lt;unistd.h>

void main()
{
        int pid, parentpid, childpid;

        parentpid=getpid();
        printf("I am the parent process and my pid is %d\n", getpid());

        if (pid=fork()) {
                childpid=pid;
        } else {
                printf("I am a child process and my pid is %d\n", getpid());
                exit(0);
        }

        printf("I am still the parent process and my pid is %d\n", getpid());
        exit(0);
}
Hier het kind proces gewoon beeldschermen zijn pid vervolgens uitgangen. U zult waarschijnlijk meer willen doen met je kind processen, maar na uw kinderen zorgen van het bedrijfsleven moeten verlaten, zodat ze deel aan een verdere forken. Ook in mijn voorbeeld de bovenliggende proces uitgangen vrij snel. Dit betekent dat init zullen erven het kind en zullen profiteren wanneer hij sterft. Als ik wilde houden de moedermaatschappij rond, ik zou moeten verzekeren dat het thema wachten () oproepen voor elk kind dat sterft. Als ik niet doen, de kinderen zouden worden zombies. Ik meestal laat de ouder sterven.

Zodra we hebben enkele code die doet wat wij willen, als we dat willen doen n keer gebruiken we een lus:
Code:
#include &lt;stdio.h>
#include &lt;unistd.h>

void main()
{
        int n, pid, parentpid, childpids[10];

        parentpid=getpid();
        printf("I am the parent process and my pid is %d\n", getpid());

        for(n=0; n<5; n++) {
                if (pid=fork()) {
                        childpids[n]=pid;
                } else {
                        printf("I am a child process and my pid is %d\n", 
                                        getpid());
                        exit(0);
                }
        }

        printf("I am still the parent process and my pid is %d\n", getpid());
        exit(0);
}
Zoals gevraagd door het OP, de kinderen PIDs worden geregistreerd in een array. Maar ik blijf gewoon laten de moedermaatschappij sterven.
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 10:38 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0