<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Как проверить что файл открыт на запись в данный момент ?]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=12872</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=12872&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Как проверить что файл открыт на запись в данный момент ?».]]></description>
		<lastBuildDate>Sun, 17 Apr 2011 12:08:15 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Как проверить что файл открыт на запись в данный момент ?]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=169450#p169450</link>
			<description><![CDATA[<p>Может работать с каналами? Они имеют встроенный механизм синхронизации.<br />Можно конечно использовать синхронизация работы с файлами man fcntl<br />Но зачем вам так заморачиваться, что бы синхронизировать нити, можно использовать мьютексы&nbsp; или сигнальные переменные.</p>]]></description>
			<author><![CDATA[null@example.com (anonymousRU)]]></author>
			<pubDate>Sun, 17 Apr 2011 12:08:15 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=169450#p169450</guid>
		</item>
		<item>
			<title><![CDATA[Как проверить что файл открыт на запись в данный момент ?]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=169270#p169270</link>
			<description><![CDATA[<p>Работая с потоками и их синхронизацией.</p><div class="codebox"><pre><code>void main (int arcg, char *arcv[])
{
  int a=atoi(arcv[1]);
  pthread_t wthread[a], rthread[a];
  for (int i=0; i&lt;a; i++)
    {
      pthread_create(&amp;wthread[i], NULL,kidprint, NULL);
pthread_create(&amp;rthread[i], NULL,kidread, (void*) &amp;wthread[i]);
    }
 for(int b=0; b&lt;a; b++)
    {
      pthread_join(wthread[b], NULL);
      pthread_join(rthread[b], NULL);
    }
}</code></pre></div><p>В pthread_create файл создается и открывается для записи</p><div class="codebox"><pre><code>FILE *fout; 
 char fname[20];
   sprintf(fname, &quot;%u&quot;,a);
  fout = fopen (fname, &quot;w&quot;);</code></pre></div><p>В pthread_create всё записаное в файл читается</p><p> </p><div class="codebox"><pre><code> FILE *fin;
  char fname[20];
  sprintf(fname, &quot;%u&quot;, *id);
  fin = fopen(fname, &quot;r&quot;);</code></pre></div><p>Вопрос : как в потоке чтения проверить, что в файл записывается что-то ?</p>]]></description>
			<author><![CDATA[null@example.com (Jatsuk)]]></author>
			<pubDate>Sun, 17 Apr 2011 03:15:08 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=169270#p169270</guid>
		</item>
	</channel>
</rss>
