<?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[Ausgaben einer Systemfunktion zur Laufzeit dauerhaft auslesen.]]></title><description><![CDATA[<p>Folgendes Problem:<br />
Ich habe eine Systemfunktion wie etwa (nur als Beispiel)</p>
<pre><code>system(&quot;befehl -v &gt;/tmp/tmp.txt&quot;)
</code></pre>
<p>und möchte diese in einer Memberfunktion aufrufen. Da ich aber über eine Benutzeroberfläche sowas wie eine Statusanzige brauche, würde ich gerne die Ausgaben dort anzeigen lassen.<br />
Ich müsste also diese Funktion aufrufen und dann den Text dazu auslesen, soweit kein Problem, nur ändert sich ja nach dem Aufruf des Systemkommandos die Ausgabe laufend, und bin somit nicht uptodate weil ich ja nur einmalig zu einem bestimmten Zeitpunkt die Ausgaben nach dem Aufruf sinvoll auslesen kann. Wie kann ich eine laufende Ausgabe erreichen? Ich hoffe, das es so verständlich war?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249278/ausgaben-einer-systemfunktion-zur-laufzeit-dauerhaft-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 14:34:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249278.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 05 Sep 2009 11:09:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ausgaben einer Systemfunktion zur Laufzeit dauerhaft auslesen. on Sat, 05 Sep 2009 11:11:54 GMT]]></title><description><![CDATA[<p>Folgendes Problem:<br />
Ich habe eine Systemfunktion wie etwa (nur als Beispiel)</p>
<pre><code>system(&quot;befehl -v &gt;/tmp/tmp.txt&quot;)
</code></pre>
<p>und möchte diese in einer Memberfunktion aufrufen. Da ich aber über eine Benutzeroberfläche sowas wie eine Statusanzige brauche, würde ich gerne die Ausgaben dort anzeigen lassen.<br />
Ich müsste also diese Funktion aufrufen und dann den Text dazu auslesen, soweit kein Problem, nur ändert sich ja nach dem Aufruf des Systemkommandos die Ausgabe laufend, und bin somit nicht uptodate weil ich ja nur einmalig zu einem bestimmten Zeitpunkt die Ausgaben nach dem Aufruf sinvoll auslesen kann. Wie kann ich eine laufende Ausgabe erreichen? Ich hoffe, das es so verständlich war?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772631</guid><dc:creator><![CDATA[dixidix]]></dc:creator><pubDate>Sat, 05 Sep 2009 11:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben einer Systemfunktion zur Laufzeit dauerhaft auslesen. on Sat, 05 Sep 2009 11:14:09 GMT]]></title><description><![CDATA[<p>Bist du sicher, dass du das Problem nicht mit API Funktionen lösen kannst? - system Aufrufe sind recht teuer:<br />
<a href="http://www.gidnetwork.com/b-61.html" rel="nofollow">http://www.gidnetwork.com/b-61.html</a></p>
<p>API Funktionen hingegen sind oftmals genug performant, um sie in Echtzeit aufzurufen. (sprich ein paar mal die Sekunde).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772636</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 05 Sep 2009 11:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben einer Systemfunktion zur Laufzeit dauerhaft auslesen. on Sat, 05 Sep 2009 11:32:21 GMT]]></title><description><![CDATA[<p>Ich bin mir eben nicht sicher, deshalb frag ich ja und würde gerne wissen wie man sowas am besten machen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772650</guid><dc:creator><![CDATA[dixidix]]></dc:creator><pubDate>Sat, 05 Sep 2009 11:32:21 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben einer Systemfunktion zur Laufzeit dauerhaft auslesen. on Sat, 05 Sep 2009 11:40:58 GMT]]></title><description><![CDATA[<p>Ja. Was du dann machen willst, musst du uns schon offenbaren.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772661</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 05 Sep 2009 11:40:58 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben einer Systemfunktion zur Laufzeit dauerhaft auslesen. on Sat, 05 Sep 2009 11:47:06 GMT]]></title><description><![CDATA[<p>Windows: <a href="http://2http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx" rel="nofollow">CreateProcess</a><br />
Linux: <a href="http://linux.die.net/man/3/execlp" rel="nofollow">execlp</a></p>
<p>Dann nur noch mittels Piping die Prozessausgabe von stdout, stderr umleiten fertig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772671</guid><dc:creator><![CDATA[DeepCopy]]></dc:creator><pubDate>Sat, 05 Sep 2009 11:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben einer Systemfunktion zur Laufzeit dauerhaft auslesen. on Sat, 05 Sep 2009 11:56:35 GMT]]></title><description><![CDATA[<p>Ahh, das kommt schon näher ran. Soll für Linux sein, Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772679</guid><dc:creator><![CDATA[dixidix]]></dc:creator><pubDate>Sat, 05 Sep 2009 11:56:35 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben einer Systemfunktion zur Laufzeit dauerhaft auslesen. on Sat, 05 Sep 2009 15:29:53 GMT]]></title><description><![CDATA[<p>Gern geschehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Für das Piping in Linux könnte das hier hilfreich sein.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdio&gt;
#include &lt;cstdlib&gt;

using namespace std;

int main(int argc, char *argv[])
{
	pid_t nPid;
	char page;
	// Make pipe for communication between parent and child
	int p[2];
	if ( pipe( p ) != 0 )
	{
		perror( &quot;pipe()&quot; ); exit(255);
	}

	// fork() to get child process
	nPid = fork();
	if ( nPid &lt; 0 )
	{
		perror( &quot;fork()&quot; );
		exit(255);
	}
	else if ( nPid == 0 )
	{
		// CHILD PROCESS
		close(p[0]);
		if (p[1] != STDOUT_FILENO)
		{
			if (dup2(p[1], STDOUT_FILENO) != STDOUT_FILENO)
			cerr &lt;&lt; &quot;dup2 error to stdout&quot; &lt;&lt; endl;
			close(p[1]);
		}
		execlp( &quot;wget&quot;, &quot;wget&quot;, &quot;--output-document&quot;,&quot;-&quot;,&quot;robots=off&quot;,&quot;-q&quot;,&quot;http://www.google.com&quot;, NULL);
		exit(255);
	}
	else
	{
		// PARENT PROCESS
		// put result from wget in var page;
		cout &lt;&lt; &quot;page name to put result from wget is: \n&quot; &lt;&lt; page;
		return(0);
	}

	//fflush( stdout );
	return( 0 );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1772794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772794</guid><dc:creator><![CDATA[DeepCopy]]></dc:creator><pubDate>Sat, 05 Sep 2009 15:29:53 GMT</pubDate></item></channel></rss>