<?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[CreateProcess und pipen]]></title><description><![CDATA[<p>Hallo,<br />
Da einige Signalverarbeitungsprogramme in der Schule nur unter Unix laufen, hat uns der Dozent eine Version von Cygwin zur Verfügung gestellt, bei der die Programme enthalten sind. Da die Installation dieser Cygwin Version recht mühsam ist, dachte ich, ich schreib mal ein Setup Programm. Das Problem ist nun, da das Archivfile im tgz Format ist, muss es um entpackt zu werden nach vom Programm gzip zum Programm tar gepipt werden. Um es klarer zu machen, im CMD muss folgendes eingegeben werden:<br />
gzip -cd cygwin.tgz | tar xSpf -<br />
führe ich diesen Befehl nun mit <em>system(&quot;...&quot;)</em> aus, funktioniert das einwandfrei. Da ich hier mal gelesen habe, dass man system() nicht verwenden sollte, möchte ich das Archiv mit CreatProcess entpacken. Ich habe das mal folgender massen versucht:</p>
<pre><code class="language-cpp">bool ok = CreateProcess(NULL, &quot;gzip -cd cygwin.tgz | tar xSpf -&quot;,
                           NULL, NULL, true, 
                           NORMAL_PRIORITY_CLASS, NULL,
                           GetCurrentDir().c_str() , &amp;sStartInfo,
                           &amp;sProcessInfo);
</code></pre>
<p>Das Ergebnis ist nun, dass zwar ein gzip Process generiert wird, der tar Process, an den die Daten von gzip gepipt werden sollen jedoch ausbleibt. Kann mir da vielleicht jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154988/createprocess-und-pipen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 03:38:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154988.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Aug 2006 14:53:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CreateProcess und pipen on Tue, 01 Aug 2006 14:53:27 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Da einige Signalverarbeitungsprogramme in der Schule nur unter Unix laufen, hat uns der Dozent eine Version von Cygwin zur Verfügung gestellt, bei der die Programme enthalten sind. Da die Installation dieser Cygwin Version recht mühsam ist, dachte ich, ich schreib mal ein Setup Programm. Das Problem ist nun, da das Archivfile im tgz Format ist, muss es um entpackt zu werden nach vom Programm gzip zum Programm tar gepipt werden. Um es klarer zu machen, im CMD muss folgendes eingegeben werden:<br />
gzip -cd cygwin.tgz | tar xSpf -<br />
führe ich diesen Befehl nun mit <em>system(&quot;...&quot;)</em> aus, funktioniert das einwandfrei. Da ich hier mal gelesen habe, dass man system() nicht verwenden sollte, möchte ich das Archiv mit CreatProcess entpacken. Ich habe das mal folgender massen versucht:</p>
<pre><code class="language-cpp">bool ok = CreateProcess(NULL, &quot;gzip -cd cygwin.tgz | tar xSpf -&quot;,
                           NULL, NULL, true, 
                           NORMAL_PRIORITY_CLASS, NULL,
                           GetCurrentDir().c_str() , &amp;sStartInfo,
                           &amp;sProcessInfo);
</code></pre>
<p>Das Ergebnis ist nun, dass zwar ein gzip Process generiert wird, der tar Process, an den die Daten von gzip gepipt werden sollen jedoch ausbleibt. Kann mir da vielleicht jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108626</guid><dc:creator><![CDATA[wedmer]]></dc:creator><pubDate>Tue, 01 Aug 2006 14:53:27 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcess und pipen on Tue, 01 Aug 2006 15:07:23 GMT]]></title><description><![CDATA[<p>Würde das mal trennen 1. Parameter Applikation, 2. Paramter CommandLine</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108642</guid><dc:creator><![CDATA[Christian411]]></dc:creator><pubDate>Tue, 01 Aug 2006 15:07:23 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcess und pipen on Tue, 01 Aug 2006 15:19:55 GMT]]></title><description><![CDATA[<p>Oder du machst es dir einfacher mit ShellExecute().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108650</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Tue, 01 Aug 2006 15:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcess und pipen on Tue, 01 Aug 2006 15:42:38 GMT]]></title><description><![CDATA[<p>Application und Commandline trennen bringt nichts, habe ich versucht.<br />
Das Problem ist, wenn ich ShellExecute() verwende, erfahre ich nicht wann das enpacken fertig ist um die instellation fortzusetzten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108674</guid><dc:creator><![CDATA[wedmer]]></dc:creator><pubDate>Tue, 01 Aug 2006 15:42:38 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcess und pipen on Tue, 01 Aug 2006 15:55:03 GMT]]></title><description><![CDATA[<p>OK, da ist was dran...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108683</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Tue, 01 Aug 2006 15:55:03 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcess und pipen on Tue, 01 Aug 2006 15:56:48 GMT]]></title><description><![CDATA[<p>Da hilft dir dann aber ShellExecuteEx. Da bekommst du auch einen Prozesshandle zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108685</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 01 Aug 2006 15:56:48 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcess und pipen on Wed, 02 Aug 2006 12:26:27 GMT]]></title><description><![CDATA[<p>Habe jetzt mal einen Versuch mit ShellExecuteEx() folgendermassen gestartet:</p>
<pre><code class="language-cpp">hUnzip.cbSize = sizeof(hUnzip);
hUnzip.fMask = SEE_MASK_NOCLOSEPROCESS;
hUnzip.nShow = SW_SHOW;
hUnzip.lpFile = &quot;gzip.exe&quot;;
hUnzip.lpParameters = &quot;-cd cygwin.tgz | tar xSpf -&quot;;
ShellExecuteEx(&amp;hUnzip);
</code></pre>
<p>Doch leider mit demselben Ergebnis wie mit CreatProcess, der Process von gzip.exe wird ausgeführt, jener der tar.exe an den die Daten gepipt werden sollen bleibt aus.<br />
Als Alternative habe ich noch Versucht, als <strong><em>lpFile</em> = &quot;cmd&quot;</strong> zu übergeben und dann für <strong><em>lpParameters</em> = &quot;gzip -cd cygwin.tgz | tar xSpf -&quot;</strong>. Bei dieser Version werden die Parameter vollkommen ignoriert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109172</guid><dc:creator><![CDATA[wedmer]]></dc:creator><pubDate>Wed, 02 Aug 2006 12:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to CreateProcess und pipen on Fri, 18 Aug 2006 14:34:01 GMT]]></title><description><![CDATA[<p>Habs weder mit CreateProcess noch mit ShellExecuteEx hin bekommen. Habe jetzt folgende lösung gewählt. Ich erstelle ein batch file, in dem die Pfanangaben richtig gesetzt werden und führe anschliessend dies batch Datei mit ShellExecuteEx aus und hole mir anschliessend die beiden Handles des gzip und tar Prozesses.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1119778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1119778</guid><dc:creator><![CDATA[wedmer]]></dc:creator><pubDate>Fri, 18 Aug 2006 14:34:01 GMT</pubDate></item></channel></rss>