<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[fork, kindprozesse aufzählen?]]></title><description><![CDATA[<pre><code class="language-cpp">int variable;
while(true)
{
    variable++;
    if(fork()==0)
    {
        //SOHN
        variable--;
        exit(0);
    }
    else
    {
        //VATER
    }
}
</code></pre>
<p>Hallo! Ich möchte gerne die variable des Vaters aus dem sohn verändern um die kindprozesse aufzuzählen. Wie geht das?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/220818/fork-kindprozesse-aufzählen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 14:09:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220818.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Aug 2008 14:19:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Thu, 21 Aug 2008 14:19:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int variable;
while(true)
{
    variable++;
    if(fork()==0)
    {
        //SOHN
        variable--;
        exit(0);
    }
    else
    {
        //VATER
    }
}
</code></pre>
<p>Hallo! Ich möchte gerne die variable des Vaters aus dem sohn verändern um die kindprozesse aufzuzählen. Wie geht das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1568974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1568974</guid><dc:creator><![CDATA[neoexpert]]></dc:creator><pubDate>Thu, 21 Aug 2008 14:19:08 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Fri, 22 Aug 2008 07:24:39 GMT]]></title><description><![CDATA[<p>Das müsstest du über Shared-Memory machen. Ansonsten kann der Vater einfach seine Kinder selbst zählen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569336</guid><dc:creator><![CDATA[Ponto]]></dc:creator><pubDate>Fri, 22 Aug 2008 07:24:39 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Fri, 22 Aug 2008 07:40:56 GMT]]></title><description><![CDATA[<p>Wie denn? Mit wait wartet er doch euf jeden einzelnen Kind. Ich möchte aber mehrere starten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569350</guid><dc:creator><![CDATA[neoexpert]]></dc:creator><pubDate>Fri, 22 Aug 2008 07:40:56 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Fri, 22 Aug 2008 07:46:22 GMT]]></title><description><![CDATA[<p>Wenn du eh nur zählst erhöhe die Variable doch einfach im Vater.</p>
<p>P.S. es gibt nicht nur eine wait()-Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569356</guid><dc:creator><![CDATA[Hä??]]></dc:creator><pubDate>Fri, 22 Aug 2008 07:46:22 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Fri, 22 Aug 2008 08:16:11 GMT]]></title><description><![CDATA[<p>Hallo neoexpert,</p>
<p>Also ich vermute mal du willst <em>n</em> Kindprozesse starten und im Vaterprozess überwachen, ob sie noch laufen?</p>
<p>Wenn ja, dann würde ich das so machen:</p>
<pre><code class="language-cpp">int variable;
int pids[n];
int child = 0;
//Feld vorbelegen
for(int i=0; i&lt;n; i++){
    pids[i] = 0;
}
for(int i=0; i&lt;n; i++){
    int pid_tmp = fork();
    if(pid_tmp &lt; 0){
        cout&lt;&lt;&quot;Error in fork&quot;&lt;&lt;endl;
        exit(1);
    } else {
        if(pid_tmp == 0){
            pids[i] = pid_tmp;
        } else {
            child = 1;
        }
    }
}

if(child == 0){
    for(int i=0; 1==1; i++)
    {
        if(i==n){
            i=0;
        }
        if((wpid = waitpid(pids[i], &amp;childstatus, WNOHANG) &lt; 0){
            cout&lt;&lt;&quot;Error in waitpid&quot;&lt;&lt;endl;
            exit(2);
        } else {
            if(childstatus == 0){
                cout&lt;&lt;&quot;Pid is running&quot;&lt;&lt;endl;
            } else {
                int pid_tmp = fork();
                if(pid_tmp &lt; 0){
                    cout&lt;&lt;&quot;Error in fork&quot;&lt;&lt;endl;
                    exit(3);
                } else {
                    if(pid_tmp == 0){
                        pids[i] = pid_tmp;
                    } else {
                        child = 1;
                    }
                }
            }
        }
}
if(child == 1){
    //Child code
}
</code></pre>
<p>Gruß<br />
Waldemar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569384</guid><dc:creator><![CDATA[waldemar81]]></dc:creator><pubDate>Fri, 22 Aug 2008 08:16:11 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Fri, 22 Aug 2008 13:19:30 GMT]]></title><description><![CDATA[<p>ich probier das mal gleich. Da hätte ich aber noch eine Frage wegen formatieren von dem quellcode.<br />
du schreibst das ja so:</p>
<pre><code class="language-cpp">if(i==n){
            i=0;
 }
</code></pre>
<p>ich finde es aber übersichtlicher wenn man es so schreibt:</p>
<pre><code class="language-cpp">if(i==n)
{
            i=0;
}
</code></pre>
<p>Aber das machen viele so wie du es machst, warum denn? Findest du deinen code übersichtlicher?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569630</guid><dc:creator><![CDATA[neoexpert]]></dc:creator><pubDate>Fri, 22 Aug 2008 13:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Fri, 22 Aug 2008 13:51:54 GMT]]></title><description><![CDATA[<p>Hallo neoexpert,</p>
<p>also ich mach das so, weil wenn man editoren verwendet, die Teile des codes verbergen können dann folgende zeilen produzieren und das finde ich unpraktisch:</p>
<pre><code class="language-cpp">if(i==5)
{
_____________________________________
</code></pre>
<p>Mir persönlich gefällt</p>
<pre><code class="language-cpp">if(i==5){
_____________________________________
</code></pre>
<p>Besser.</p>
<p>Grüße<br />
Waldemar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569654</guid><dc:creator><![CDATA[waldemar81]]></dc:creator><pubDate>Fri, 22 Aug 2008 13:51:54 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Fri, 22 Aug 2008 14:15:27 GMT]]></title><description><![CDATA[<p>waldemar81 schrieb:</p>
<blockquote>
<p>Hallo neoexpert,</p>
<p>also ich mach das so, weil wenn man editoren verwendet, die Teile des codes verbergen können dann folgende zeilen produzieren und das finde ich unpraktisch:</p>
<pre><code class="language-cpp">if(i==5)
{
_____________________________________
</code></pre>
<p>Mir persönlich gefällt</p>
<pre><code class="language-cpp">if(i==5){
_____________________________________
</code></pre>
<p>Besser.</p>
<p>Grüße<br />
Waldemar</p>
</blockquote>
<p>Kommt auf den Editor an.</p>
<p>Neoexpert, er wird schon die Notation verwenden die er übersichtlicher findet.<br />
Diese beiden Notationen nehmen sich nichts, ist reine Gewohnheitssache, daher findest du diese beiden auch so häufig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569673</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Fri, 22 Aug 2008 14:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Sat, 23 Aug 2008 13:35:54 GMT]]></title><description><![CDATA[<p>Hä?? schrieb:</p>
<blockquote>
<p>Wenn du eh nur zählst erhöhe die Variable doch einfach im Vater.</p>
<p>P.S. es gibt nicht nur eine wait()-Funktion.</p>
</blockquote>
<p>Ja, ich wolte aber tatsächliche anzahl der aktuell laufenden, kindprozesse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570097</guid><dc:creator><![CDATA[neoexpert]]></dc:creator><pubDate>Sat, 23 Aug 2008 13:35:54 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Sun, 24 Aug 2008 18:45:51 GMT]]></title><description><![CDATA[<p>Noch zwei Fragen hätte ich noch<br />
1: wie realisiere ich threads unter linux? (Unter windows gehts ja mit CreateThread() ganz leicht)<br />
2: Kann man in windows auch irgendwie den aktuellen Prozess kopieren? Oder gehts da genau so wie bei linux mit fork()?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570638</guid><dc:creator><![CDATA[neoexpert]]></dc:creator><pubDate>Sun, 24 Aug 2008 18:45:51 GMT</pubDate></item><item><title><![CDATA[Reply to fork, kindprozesse aufzählen? on Mon, 25 Aug 2008 09:25:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>neoexpert schrieb:</p>
<blockquote>
<p>Noch zwei Fragen hätte ich noch<br />
1: wie realisiere ich threads unter linux? (Unter windows gehts ja mit CreateThread() ganz leicht)<br />
2: Kann man in windows auch irgendwie den aktuellen Prozess kopieren? Oder gehts da genau so wie bei linux mit fork()?</p>
</blockquote>
<p>1. siehe z.B. <a href="http://linux.die.net/man/3/pthread_create" rel="nofollow">http://linux.die.net/man/3/pthread_create</a><br />
2. Nein, die Prozessmodelle unterscheiden sich hier deutlich, man könnte dann mit <em>CreateProcess</em>, <em>CreateThread</em> und eventuell nötigen Interprozesskommunikations-Mitteln die <em>fork</em>-Funktionalität erreichen.</p>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570886</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Mon, 25 Aug 2008 09:25:30 GMT</pubDate></item></channel></rss>