<?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[System Befehl in C++ läuft nicht wie in der Kommandozeile]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem in C++.<br />
Ich möchte ein paar Kommandobefehle über system() ausgeben.<br />
Jedoch funktionieren die nicht so, wie man es von der direkten Kommandozeile her kennt.</p>
<p>Ich möchte im Programm ein paar Werte aus einer sqlite3 Datenbank auslesen und in eine Datei schreiben.<br />
Anschließend sollen die Daten geplottet werden. Keine sehr schöne Lösung, aber es soll erstmal grundsätzlich funktionieren <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>
<pre><code>string StrOutput = &quot;sqlite3 test.db 'select date, time, tempin, tempout, humidity from messwerte where datetime between \&quot;2015-01-16 16:00:00\&quot; AND \&quot;2015-01-18 18:00:00\&quot; ' &gt; test.txt&quot;;
    cout &lt;&lt; StrOutput;
    system((&quot;'&quot;+StrOutput+&quot;'&quot;).c_str());
    system (&quot;gnuplot &lt; einstellungen.plt&quot;);
    system (&quot;rm test.txt&quot;);
</code></pre>
<p>Wenn ich das mit meinem Programm drum herum kompiliere, erhalte ich immer die Fehlermeldung:</p>
<pre><code>sh: 1: sqlite3 test.db select: not found
         line 0: warning: Skipping unreadable file &quot;test.txt&quot;
         line 0: warning: Skipping unreadable file &quot;test.txt&quot;
         line 0: warning: Skipping unreadable file &quot;test.txt&quot;
         line 0: No data in plot

rm: das Entfernen von »test.txt“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
sqlite3 test.db 'select date, time, tempin, tempout, humidity from messwerte where datetime between &quot;2015-01-16 16:00:00&quot; AND &quot;2015-01-18 18:00:00&quot; ' &gt; test.txt
</code></pre>
<p>Wenn ich aber meinen erzeugten Kommandozeilenbefehl:</p>
<pre><code>sqlite3 test.db 'select date, time, tempin, tempout, humidity from messwerte where datetime between &quot;2015-01-16 16:00:00&quot; AND &quot;2015-01-18 18:00:00&quot; ' &gt; test.txt
</code></pre>
<p>direkt so in der Kommandozeile ausführe, dann funktioniert alles wie gewollt.</p>
<p>Hat jemand eine Idee? Ich befürchte, dass es an der Zeile hängt, in der ich der system() Funktion den fertig gebauten String mit der Abfrage übergebe.</p>
<p>Gruß<br />
Julian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330794/system-befehl-in-c-läuft-nicht-wie-in-der-kommandozeile</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 22:50:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330794.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Jan 2015 21:12:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to System Befehl in C++ läuft nicht wie in der Kommandozeile on Sun, 25 Jan 2015 21:12:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem in C++.<br />
Ich möchte ein paar Kommandobefehle über system() ausgeben.<br />
Jedoch funktionieren die nicht so, wie man es von der direkten Kommandozeile her kennt.</p>
<p>Ich möchte im Programm ein paar Werte aus einer sqlite3 Datenbank auslesen und in eine Datei schreiben.<br />
Anschließend sollen die Daten geplottet werden. Keine sehr schöne Lösung, aber es soll erstmal grundsätzlich funktionieren <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>
<pre><code>string StrOutput = &quot;sqlite3 test.db 'select date, time, tempin, tempout, humidity from messwerte where datetime between \&quot;2015-01-16 16:00:00\&quot; AND \&quot;2015-01-18 18:00:00\&quot; ' &gt; test.txt&quot;;
    cout &lt;&lt; StrOutput;
    system((&quot;'&quot;+StrOutput+&quot;'&quot;).c_str());
    system (&quot;gnuplot &lt; einstellungen.plt&quot;);
    system (&quot;rm test.txt&quot;);
</code></pre>
<p>Wenn ich das mit meinem Programm drum herum kompiliere, erhalte ich immer die Fehlermeldung:</p>
<pre><code>sh: 1: sqlite3 test.db select: not found
         line 0: warning: Skipping unreadable file &quot;test.txt&quot;
         line 0: warning: Skipping unreadable file &quot;test.txt&quot;
         line 0: warning: Skipping unreadable file &quot;test.txt&quot;
         line 0: No data in plot

rm: das Entfernen von »test.txt“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
sqlite3 test.db 'select date, time, tempin, tempout, humidity from messwerte where datetime between &quot;2015-01-16 16:00:00&quot; AND &quot;2015-01-18 18:00:00&quot; ' &gt; test.txt
</code></pre>
<p>Wenn ich aber meinen erzeugten Kommandozeilenbefehl:</p>
<pre><code>sqlite3 test.db 'select date, time, tempin, tempout, humidity from messwerte where datetime between &quot;2015-01-16 16:00:00&quot; AND &quot;2015-01-18 18:00:00&quot; ' &gt; test.txt
</code></pre>
<p>direkt so in der Kommandozeile ausführe, dann funktioniert alles wie gewollt.</p>
<p>Hat jemand eine Idee? Ich befürchte, dass es an der Zeile hängt, in der ich der system() Funktion den fertig gebauten String mit der Abfrage übergebe.</p>
<p>Gruß<br />
Julian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439733</guid><dc:creator><![CDATA[julianpe]]></dc:creator><pubDate>Sun, 25 Jan 2015 21:12:47 GMT</pubDate></item><item><title><![CDATA[Reply to System Befehl in C++ läuft nicht wie in der Kommandozeile on Sun, 25 Jan 2015 21:38:30 GMT]]></title><description><![CDATA[<pre><code>sh: 1: sqlite3 test.db select: not found
</code></pre>
<p>Das sagt doch alles, was man wissen muss, oder? Wahrscheinlich ist das Arbeitsverzeichnis deines Programms ein anderes als das in dem du dein Testkommando ausführst.</p>
<p>Sowohl für SQL als auch für Gnuplot gibt es Bibliotheken, mit denen man diese direkt steuern kann, ohne derart umständlich über system-Befehle hantieren zu müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439736</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 25 Jan 2015 21:38:30 GMT</pubDate></item><item><title><![CDATA[Reply to System Befehl in C++ läuft nicht wie in der Kommandozeile on Sun, 25 Jan 2015 21:42:36 GMT]]></title><description><![CDATA[<p>Wieso setzt du nochmal '' um den Befehl? Das ist hier direkt für den Fehler verantwortlich.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<pre><code>sh: 1: sqlite3 test.db select: not found
</code></pre>
<p>Das sagt doch alles, was man wissen muss, oder? Wahrscheinlich ist das Arbeitsverzeichnis deines Programms ein anderes als das in dem du dein Testkommando ausführst.</p>
</blockquote>
<p>Ich glaube, du missinterpretierst die Meldung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439737</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sun, 25 Jan 2015 21:42:36 GMT</pubDate></item><item><title><![CDATA[Reply to System Befehl in C++ läuft nicht wie in der Kommandozeile on Sun, 25 Jan 2015 21:48:53 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Wieso setzt du nochmal '' um den Befehl? Das ist hier direkt für den Fehler verantwortlich.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<pre><code>sh: 1: sqlite3 test.db select: not found
</code></pre>
<p>Das sagt doch alles, was man wissen muss, oder? Wahrscheinlich ist das Arbeitsverzeichnis deines Programms ein anderes als das in dem du dein Testkommando ausführst.</p>
</blockquote>
<p>Ich glaube, du missinterpretierst die Meldung.</p>
</blockquote>
<p>Oh, jetzt sehe ich es. Du hast natürlich recht. Da habe ich den Doppelpunkt unterbewusst an eine andere Stelle des Satzes versetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439741</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 25 Jan 2015 21:48:53 GMT</pubDate></item><item><title><![CDATA[Reply to System Befehl in C++ läuft nicht wie in der Kommandozeile on Sun, 25 Jan 2015 21:50:13 GMT]]></title><description><![CDATA[<p>Besten Dank!<br />
Es funktioniert ganz normal mit:<br />
system((StrOutput ).c_str());</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439742</guid><dc:creator><![CDATA[julianpe]]></dc:creator><pubDate>Sun, 25 Jan 2015 21:50:13 GMT</pubDate></item></channel></rss>