<?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[Ausgabe in String umleiten]]></title><description><![CDATA[<p>Ich starte über ein c++ Programm ein Tool des Android SDKs. Dieses<br />
gestartete Tools gibt fleissig output in die Konsole. Diesen output<br />
würde ich nun gerne in meinem Programm als String weiter verarbeiten.</p>
<p>Bisher kam ich mit der PStream Lib ganz gut aus. Dieses Beispiel hier gibt mir den kompletten output des gestarteten Programms zurück.</p>
<pre><code class="language-cpp">std::string s, ausgabe;
chdir(path_to_adb.c_str());
redi::pstream adb_shell(&quot;./adb shell&quot;);
adb_shell &lt;&lt; &quot;mount /system&quot; &lt;&lt; std::endl;
adb_shell &lt;&lt; &quot;chmod 644 /system/app/*&quot; &lt;&lt; std::endl;
adb_shell &lt;&lt; &quot;chmod 644 /system/framework/*&quot; &lt;&lt; std::endl;
adb_shell &lt;&lt; &quot;exit&quot; &lt;&lt; std::endl;
while(std::getline(adb_shell, s)) {
   ausgabe.append(s);
   ausgabe.append(&quot;\n&quot;);
   }
textview_buffer-&gt;set_text(ausgabe);
</code></pre>
<p>Möchte ich jetzt nicht die adb shell über mein Programm starten, sondern nur eine Datei auf das Android Device kopieren kommt das Programm adb push zum Einsatz. Wenn ich dieses jedoch mit der PStream Lib starte, gibt es mir nichts zurück, obwohl adb push ebenfalls Infos über die kopierten Dateien und die Dauer des kopierens in die Konsole ausgibt.</p>
<pre><code class="language-cpp">std::string s, ausgabe;
chdir(path_to_adb.c_str());  
redi::pstream adb_pull(&quot;./adb pull /system/app /home/dir/&quot;);
while(std::getline(adb_pull, s)) {
  ausgabe.append(s);
  ausgabe.append(&quot;\n&quot;);
}
textview_buffer-&gt;set_text(ausgabe);
</code></pre>
<p>Das obige Beispiel funktioniert nicht und der String Ausgabe bleibt leer. Obwohl in der Konsole die Operationen nach folgendem Schema durchrattern.</p>
<p>Kopierte Datei: 1985 KB/s (203484 bytes in 0.100s)</p>
<p>Welche Möglichkeiten habe ich an den Inhalt der Konsole zu kommen wenn mir die PStream Lib nichts rausrückt aber in der Standard Konsole etwas zurück gegeben wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/269422/ausgabe-in-string-umleiten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 19:50:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/269422.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Jun 2010 16:21:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ausgabe in String umleiten on Thu, 24 Jun 2010 16:21:21 GMT]]></title><description><![CDATA[<p>Ich starte über ein c++ Programm ein Tool des Android SDKs. Dieses<br />
gestartete Tools gibt fleissig output in die Konsole. Diesen output<br />
würde ich nun gerne in meinem Programm als String weiter verarbeiten.</p>
<p>Bisher kam ich mit der PStream Lib ganz gut aus. Dieses Beispiel hier gibt mir den kompletten output des gestarteten Programms zurück.</p>
<pre><code class="language-cpp">std::string s, ausgabe;
chdir(path_to_adb.c_str());
redi::pstream adb_shell(&quot;./adb shell&quot;);
adb_shell &lt;&lt; &quot;mount /system&quot; &lt;&lt; std::endl;
adb_shell &lt;&lt; &quot;chmod 644 /system/app/*&quot; &lt;&lt; std::endl;
adb_shell &lt;&lt; &quot;chmod 644 /system/framework/*&quot; &lt;&lt; std::endl;
adb_shell &lt;&lt; &quot;exit&quot; &lt;&lt; std::endl;
while(std::getline(adb_shell, s)) {
   ausgabe.append(s);
   ausgabe.append(&quot;\n&quot;);
   }
textview_buffer-&gt;set_text(ausgabe);
</code></pre>
<p>Möchte ich jetzt nicht die adb shell über mein Programm starten, sondern nur eine Datei auf das Android Device kopieren kommt das Programm adb push zum Einsatz. Wenn ich dieses jedoch mit der PStream Lib starte, gibt es mir nichts zurück, obwohl adb push ebenfalls Infos über die kopierten Dateien und die Dauer des kopierens in die Konsole ausgibt.</p>
<pre><code class="language-cpp">std::string s, ausgabe;
chdir(path_to_adb.c_str());  
redi::pstream adb_pull(&quot;./adb pull /system/app /home/dir/&quot;);
while(std::getline(adb_pull, s)) {
  ausgabe.append(s);
  ausgabe.append(&quot;\n&quot;);
}
textview_buffer-&gt;set_text(ausgabe);
</code></pre>
<p>Das obige Beispiel funktioniert nicht und der String Ausgabe bleibt leer. Obwohl in der Konsole die Operationen nach folgendem Schema durchrattern.</p>
<p>Kopierte Datei: 1985 KB/s (203484 bytes in 0.100s)</p>
<p>Welche Möglichkeiten habe ich an den Inhalt der Konsole zu kommen wenn mir die PStream Lib nichts rausrückt aber in der Standard Konsole etwas zurück gegeben wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916899</guid><dc:creator><![CDATA[cardex]]></dc:creator><pubDate>Thu, 24 Jun 2010 16:21:21 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe in String umleiten on Fri, 25 Jun 2010 10:43:38 GMT]]></title><description><![CDATA[<p>hat niemand eine idee wie ich an den konsolenoutput komme?<br />
oder fehlen noch informationen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917196</guid><dc:creator><![CDATA[cardex]]></dc:creator><pubDate>Fri, 25 Jun 2010 10:43:38 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe in String umleiten on Fri, 25 Jun 2010 10:48:53 GMT]]></title><description><![CDATA[<p>am einfachsten geht es eigtl über die pipe.</p>
<p>&quot;program &gt; output_cout&quot;<br />
erstellst halt davor ne datei und gibst deren name dann dort an. und danach liest du sie wieder aus.<br />
ob es noch eine bessere möglichkeit innerhalb des frameworks gibt, weiß ich nicht.</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917199</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 25 Jun 2010 10:48:53 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe in String umleiten on Fri, 25 Jun 2010 10:50:23 GMT]]></title><description><![CDATA[<p>cardex schrieb:</p>
<blockquote>
<p>hat niemand eine idee wie ich an den konsolenoutput komme?<br />
oder fehlen noch informationen?</p>
</blockquote>
<p>ich habe keine Ahnung was die PStream Lib macht, aber möglicherweise schreibt das eine Programm nach stdout und das andere nach stderr.</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917202</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 25 Jun 2010 10:50:23 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe in String umleiten on Fri, 25 Jun 2010 10:52:50 GMT]]></title><description><![CDATA[<p>cardex schrieb:</p>
<blockquote>
<p>hat niemand eine idee wie ich an den konsolenoutput komme?<br />
oder fehlen noch informationen?</p>
</blockquote>
<p>versuchs mit:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;sstream&gt;

template &lt;typename T&gt;
std::string toString(T obj){
	std::stringstream ss;
	ss &lt;&lt; obj;
	return ss.str();
}
</code></pre>
<p>Ich bastel mir bei bedarf immer etwas daraus zusammen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917205</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Fri, 25 Jun 2010 10:52:50 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe in String umleiten on Fri, 25 Jun 2010 11:09:46 GMT]]></title><description><![CDATA[<p>danke erstmal für die antworten.</p>
<p>ich werde aus den ausgaben bzw wo sie hingeschrieben werden nicht schlau. pipe ich den output in eine datei, steht nach dem ausführen folgender inhalt in der datei.</p>
<p>* daemon not running. starting it now *<br />
* daemon started successfully *</p>
<p>und das wars. der konsolenoutput ist jedoch (gekürzt, und direkt per konsole gestartet):</p>
<p>$ adb pull /system/app /home/andre/milestone &gt; /home/andre/output</p>
<p>pull: building file list...<br />
pull: /system/app/GenieWidget.apk -&gt; /home/andre/milestone/GenieWidget.apk<br />
pull: /system/app/Gmail.apk -&gt; /home/andre/milestone/Gmail.apk</p>
<p>76 files pulled. 0 files skipped.<br />
1862 KB/s (38668052 bytes in 20.274s)</p>
<p>es ist also eine völlig andere ausgabe. kann sich da jemand einen reim raus machen?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22362">@darkfate</a><br />
dein beispiel sagt mir leider nichts. kannst du viellicht ein wenig ausführen was der code machen soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917210</guid><dc:creator><![CDATA[cardex]]></dc:creator><pubDate>Fri, 25 Jun 2010 11:09:46 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe in String umleiten on Fri, 25 Jun 2010 11:15:32 GMT]]></title><description><![CDATA[<p>und was steht in den beiden Dateien, wenn du es so</p>
<p>$adb pull /system/app /home/andre/milestone &gt; /home/andre/output 2&gt;/home/andre/errorout</p>
<p>aufrufst?</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917215</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 25 Jun 2010 11:15:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe in String umleiten on Fri, 25 Jun 2010 11:21:46 GMT]]></title><description><![CDATA[<p>cardex schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22362">@darkfate</a><br />
dein beispiel sagt mir leider nichts. kannst du viellicht ein wenig ausführen was der code machen soll?</p>
</blockquote>
<p>So in etwa, ohne jegliche Typprüfung/Sicherheit.</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
std::string toString(T obj){
    std::stringstream ss;
    ss &lt;&lt; obj;
    return ss.str();
} 
std::stringstream tmp;
std::string s, ausgabe;
chdir(path_to_adb.c_str());  
redi::pstream adb_pull(&quot;./adb pull /system/app /home/dir/&quot;);
while(std::getline(adb_pull, tmp){
  ausgabe.append(toString(tmp));
  ausgabe.append(&quot;\n&quot;);
}
textview_buffer-&gt;set_text(ausgabe);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1917217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917217</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Fri, 25 Jun 2010 11:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe in String umleiten on Fri, 25 Jun 2010 11:26:25 GMT]]></title><description><![CDATA[<p>bingo, jetzt ist die datei output leer und der gesamte konsolenoutput steht in der errorout. das programm schreibt also in cerr?</p>
<p>//edit, gut den rest bekomme ich alleine raus. danke für eure hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917219</guid><dc:creator><![CDATA[cardex]]></dc:creator><pubDate>Fri, 25 Jun 2010 11:26:25 GMT</pubDate></item></channel></rss>