<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_4_subsect_6_thread_2910"  />
<title>rulinux.net - Форум - Development - Вопрос по потокам</title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Форум - Development - Вопрос по потокам</title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Re:Вопрос по потокам</title>
<link>https://rulinux.net/message.php?newsid=2910&amp;page=1#17605</link>
<guid>https://rulinux.net/message.php?newsid=2910&amp;page=1#17605</guid>
<pubDate>Fri, 10 Jul 2009 06:41:38 +0400</pubDate>
<description><![CDATA[<p>надо то чего ?
для сброса буферизации есть fflush(stdout).
или тебя волнует что child начинает работать быстрее parent ?
а кто обещал обратное ? нужно гарантировать чтобы child работал позже - используй какую либо синхронизацию. к примеру на pipe или еще на чем либо.</p>]]></description>
</item>
<item>
<title>Re:Вопрос по потокам</title>
<link>https://rulinux.net/message.php?newsid=2910&amp;page=1#17604</link>
<guid>https://rulinux.net/message.php?newsid=2910&amp;page=1#17604</guid>
<pubDate>Thu, 09 Jul 2009 11:53:50 +0400</pubDate>
<description><![CDATA[<p>терминал ничего не чистит. Просто при выводе в консоль по умолчанию ставится нулевой буфер. Дочерний же процесс наследует этот буфер и копирует к себе со всем содержимым при записи в него.</p><p>Включи буферизацию stdout и результат будет везде одинаков:</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#include &lt;stdio.h&gt;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;int main(void) {<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;  char c[2049];<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;  setbuf(stdout,c);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;  printf("start
");<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;  if (!fork()) printf("Child
"); <li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;  else {<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;    printf("Parent
");<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;    sleep(1);<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;  };<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;}<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;</ol></fieldset></p>]]></description>
</item>
<item>
<title>Re:Вопрос по потокам</title>
<link>https://rulinux.net/message.php?newsid=2910&amp;page=1#17603</link>
<guid>https://rulinux.net/message.php?newsid=2910&amp;page=1#17603</guid>
<pubDate>Thu, 09 Jul 2009 05:50:08 +0400</pubDate>
<description><![CDATA[<p>./prog:</p><p>start
child
parent</p><p>./prog | cat:</p><p>start
parent
start
child
</p>]]></description>
</item>
<item>
<title>Re:Вопрос по потокам</title>
<link>https://rulinux.net/message.php?newsid=2910&amp;page=1#17602</link>
<guid>https://rulinux.net/message.php?newsid=2910&amp;page=1#17602</guid>
<pubDate>Wed, 08 Jul 2009 23:31:40 +0400</pubDate>
<description><![CDATA[<p>Ты результат бы написал - что получается. Теряется вывод дочернего потока потому что родительраньше завершился или что?</p>]]></description>
</item>
<item>
<title>Re:Вопрос по потокам</title>
<link>https://rulinux.net/message.php?newsid=2910&amp;page=1#17601</link>
<guid>https://rulinux.net/message.php?newsid=2910&amp;page=1#17601</guid>
<pubDate>Wed, 08 Jul 2009 23:19:01 +0400</pubDate>
<description><![CDATA[<p>Да-да, верно</p><p>А по теме, похоже, что терминал чистит буфер после каждого 
</p>]]></description>
</item>
<item>
<title>Re:Вопрос по потокам</title>
<link>https://rulinux.net/message.php?newsid=2910&amp;page=1#17600</link>
<guid>https://rulinux.net/message.php?newsid=2910&amp;page=1#17600</guid>
<pubDate>Wed, 08 Jul 2009 23:06:17 +0400</pubDate>
<description><![CDATA[<p style="font-style:italic">&gt; if (!fork()) printf("parent
");</p><p>man fork | grep "0 is returned in the child"</p><p>
</p>]]></description>
</item>
<item>
<title>Вопрос по потокам</title>
<link>https://rulinux.net/message.php?newsid=2910&amp;page=1#17599</link>
<guid>https://rulinux.net/message.php?newsid=2910&amp;page=1#17599</guid>
<pubDate>Wed, 08 Jul 2009 22:29:57 +0400</pubDate>
<description><![CDATA[<p>Дано:</p><p>#include &lt;stdio.h&gt;
int main(void) {
    printf("start
");
    if (!fork())
        printf("parent
");
    else
        printf("child
");
}</p><p>Я правильно понимаю, что разница между ./prog и ./prog | cat
обусловлена тем, что у stdout буфера нету, а у pipe&#039;ов он есть?</p>]]></description>
</item>
</channel>
</rss>