<?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[this_thread::sleep_for und while]]></title><description><![CDATA[<p>Ich möchte einen linux daemon schreiben, der immer wieder eine Variable nach seinen Wert überprüft. Leider habe ich mit std::this_thread::sleep_for ein Problem. Bei diesem kleinen Codebeispiel wird die Variable nie ausgegeben. Nach ein wenig herumprobieren habe ich herausgefunden, dass die sleep_for Funktion immer sofort aufgerufen wird und der Ausgabebefehl übersprungen wird, bis die sleep_for Funktion nicht mehr aufgerufen wird. Was mache ich falsch? Oder besser, wie mache ich es richtig?</p>
<pre><code>#include &lt;thread&gt;
#include &lt;iostream&gt;

int main()
{

        std::cout &lt;&lt; 12; //Der Wert wird erst nach der sleep_for Funktion ausgegeben.

        std::this_thread::sleep_for(std::chrono::seconds(1));

}
</code></pre>
<pre><code>#include &lt;thread&gt;
#include &lt;iostream&gt;

int main()
{
    while(true)
    {
        std::cout &lt;&lt; 12; //Der Wert wird nie ausgegeben.

        std::this_thread::sleep_for(std::chrono::seconds(1));
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/331922/this_thread-sleep_for-und-while</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 01:55:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/331922.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Mar 2015 17:55:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to this_thread::sleep_for und while on Sat, 28 Mar 2015 17:55:34 GMT]]></title><description><![CDATA[<p>Ich möchte einen linux daemon schreiben, der immer wieder eine Variable nach seinen Wert überprüft. Leider habe ich mit std::this_thread::sleep_for ein Problem. Bei diesem kleinen Codebeispiel wird die Variable nie ausgegeben. Nach ein wenig herumprobieren habe ich herausgefunden, dass die sleep_for Funktion immer sofort aufgerufen wird und der Ausgabebefehl übersprungen wird, bis die sleep_for Funktion nicht mehr aufgerufen wird. Was mache ich falsch? Oder besser, wie mache ich es richtig?</p>
<pre><code>#include &lt;thread&gt;
#include &lt;iostream&gt;

int main()
{

        std::cout &lt;&lt; 12; //Der Wert wird erst nach der sleep_for Funktion ausgegeben.

        std::this_thread::sleep_for(std::chrono::seconds(1));

}
</code></pre>
<pre><code>#include &lt;thread&gt;
#include &lt;iostream&gt;

int main()
{
    while(true)
    {
        std::cout &lt;&lt; 12; //Der Wert wird nie ausgegeben.

        std::this_thread::sleep_for(std::chrono::seconds(1));
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2448353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448353</guid><dc:creator><![CDATA[thread123]]></dc:creator><pubDate>Sat, 28 Mar 2015 17:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to this_thread::sleep_for und while on Sat, 28 Mar 2015 17:59:45 GMT]]></title><description><![CDATA[<p>Der Grund ist wieso der Wert nie ausgegeben wird, ist der, dass die Streams gepuffert sind.<br />
Erst bei Programmende oder nach xxx Zeichen wird der Puffer gelehrt und der eigentliche write systemcall aufgerufen.<br />
Ein manuelles Leeren des Puffers kannst du via der Memberfunktion flush erzwingen.<br />
Dann bleibt nur noch der Puffer des OS, den du evtl. zusätzlich noch einmal flushen soll, aber probiers erst mal so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2448356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448356</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sat, 28 Mar 2015 17:59:45 GMT</pubDate></item><item><title><![CDATA[Reply to this_thread::sleep_for und while on Sat, 28 Mar 2015 18:03:34 GMT]]></title><description><![CDATA[<p>Vielen Dank! Jetzt funktioniert es wie gewollt.</p>
<pre><code>int main()
{
    while(true)
    {
        std::cout &lt;&lt; 12 &lt;&lt; std::endl;

        std::this_thread::sleep_for(std::chrono::seconds(1));
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2448358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448358</guid><dc:creator><![CDATA[thread123]]></dc:creator><pubDate>Sat, 28 Mar 2015 18:03:34 GMT</pubDate></item></channel></rss>