<?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[pipe]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>gibt es eine alternative fuer die funktion pipe(Linux) unter win32, mit den selben eigenschaften? Habe bis jetzt noch nix gefunden.</p>
<p>mfg Olli.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/112921/pipe</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 17:22:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/112921.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Jun 2005 13:58:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to pipe on Fri, 17 Jun 2005 13:58:25 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>gibt es eine alternative fuer die funktion pipe(Linux) unter win32, mit den selben eigenschaften? Habe bis jetzt noch nix gefunden.</p>
<p>mfg Olli.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/811233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/811233</guid><dc:creator><![CDATA[testuser]]></dc:creator><pubDate>Fri, 17 Jun 2005 13:58:25 GMT</pubDate></item><item><title><![CDATA[Reply to pipe on Fri, 17 Jun 2005 14:02:25 GMT]]></title><description><![CDATA[<p>vermute mal das hier wird dir weiterhelfen<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipc/base/pipes.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipc/base/pipes.asp</a><br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipc/base/createpipe.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipc/base/createpipe.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/811238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/811238</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Fri, 17 Jun 2005 14:02:25 GMT</pubDate></item><item><title><![CDATA[Reply to pipe on Fri, 17 Jun 2005 14:38:35 GMT]]></title><description><![CDATA[<p>Da gibt es doch was, super - genau das suche ich, danke.</p>
<p>mfg Olli.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/811280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/811280</guid><dc:creator><![CDATA[testuser]]></dc:creator><pubDate>Fri, 17 Jun 2005 14:38:35 GMT</pubDate></item><item><title><![CDATA[Reply to pipe on Fri, 17 Jun 2005 17:24:34 GMT]]></title><description><![CDATA[<p>Teste grade das lesen und schreiben in PIPE.<br />
Was mir auffaellt, wenn nix mehr geschrieben wird und versuche weiter<br />
auszulesen, bleibt der bei ReadFile stehen (Blocking?).</p>
<pre><code>if (!ReadFile ((HANDLE) fd, data, maxlen, &amp;ret, NULL) || ret == 0)
  break;
</code></pre>
<p>Gibt es eine Loesung?</p>
<p>mfg Olli.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/811396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/811396</guid><dc:creator><![CDATA[testuser]]></dc:creator><pubDate>Fri, 17 Jun 2005 17:24:34 GMT</pubDate></item><item><title><![CDATA[Reply to pipe on Sat, 18 Jun 2005 18:46:02 GMT]]></title><description><![CDATA[<blockquote>
<p>Was mir auffaellt, wenn nix mehr geschrieben wird und versuche weiter<br />
auszulesen, bleibt der bei ReadFile stehen (Blocking?).</p>
</blockquote>
<p>Ja, ReadFile Blockiert, weil fd nicht auf nonblocking gestellt ist.</p>
<p>Nun habe ich mit ioctlsocket getestet, aber ohne erfolg.<br />
Ist es ueberhaupt möglich PIPE auf nonblocking zustellen?</p>
<p>mfg Olli.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/812067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/812067</guid><dc:creator><![CDATA[testuser]]></dc:creator><pubDate>Sat, 18 Jun 2005 18:46:02 GMT</pubDate></item><item><title><![CDATA[Reply to pipe on Sun, 19 Jun 2005 19:55:04 GMT]]></title><description><![CDATA[<p>Hier ist mal ein Beispiel Code, so wie er aussehen koennte.<br />
Nach den 10. Schreiben bleibt der bei ReadFile haengen, solange bis<br />
man wieder mit WriteFile schreibt. ReadFile soll aber weiterhin pruefen<br />
ob Zeichen anliegen.</p>
<pre><code>#include &lt;stdio.h&gt; 
#include &lt;windows.h&gt; 

HANDLE watch_dog[2]; 
char   data[1] = &quot;\0&quot;; 
int    maxlen = 1; 

int pipe(HANDLE Handle[2]) 
{ 
  SECURITY_ATTRIBUTES saAttr; 

  saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); 
  saAttr.bInheritHandle = TRUE; 
  saAttr.lpSecurityDescriptor = NULL; 

  if (! CreatePipe(&amp;Handle[0], &amp;Handle[1], &amp;saAttr, 0)) 
    return(EOF); 

  return(TRUE); 
} 

int WritePipe(void) 
{ 
  DWORD ret = 0; 
  static int task = 0; 

  if (task &lt; 10) 
  { 
    if (! WriteFile(watch_dog[1], data, maxlen, &amp;ret, NULL) || ret == 0) 
      return(FALSE); 

  ++task; 
  } 
  return(ret); 
} 

int ReadPipe(void) 
{ 
  DWORD ret = 0; 

  if (! ReadFile(watch_dog[0], data, maxlen, &amp;ret, NULL) || ret == 0) 
    return(FALSE); 

  return(ret); 
} 

DWORD main(void) 
{ 
  DWORD ret = 0; 

  if (pipe(watch_dog) &lt; 0) 
  { 
    printf(&quot;Pipe konnte nicht erstellt werden\n&quot;); 
    return(FALSE); 
  } 

  while(1) 
  { 
    Sleep(1000); 
    printf(&quot;Schreibe Wert: %d\n&quot;, ret = WritePipe()); 
    ret = 0; 
    printf(&quot;Lese     Wert: %d\n&quot;, ret = ReadPipe()); 
  } 
return(FALSE); 
}  
Code: 
#include &lt;stdio.h&gt; 
#include &lt;windows.h&gt; 

HANDLE watch_dog[2]; 
char data[1] = &quot;\0&quot;; 
int maxlen = 1; 

int pipe(HANDLE Handle[2]) 
{ 
SECURITY_ATTRIBUTES saAttr; 

saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); 
saAttr.bInheritHandle = TRUE; 
saAttr.lpSecurityDescriptor = NULL; 

if (! CreatePipe(&amp;Handle[0], &amp;Handle[1], &amp;saAttr, 0)) 
return(EOF); 

return(TRUE); 
} 

int WritePipe(void) 
{ 
DWORD ret = 0; 
static int task = 0; 

if (task &lt; 10) 
{ 
if (! WriteFile(watch_dog[1], data, maxlen, &amp;ret, NULL) || ret == 0) 
return(FALSE); 

++task; 
} 
return(ret); 
} 

int ReadPipe(void) 
{ 
DWORD ret = 0; 

if (! ReadFile(watch_dog[0], data, maxlen, &amp;ret, NULL) || ret == 0) 
return(FALSE); 

return(ret); 
} 

DWORD main(void) 
{ 
DWORD ret = 0; 

if (pipe(watch_dog) &lt; 0) 
{ 
printf(&quot;Pipe konnte nicht erstellt werden\n&quot;); 
return(FALSE); 
} 

while(1) 
{ 
Sleep(1000); 
printf(&quot;Schreibe Wert: %d\n&quot;, ret = WritePipe()); 
ret = 0; 
printf(&quot;Lese Wert: %d\n&quot;, ret = ReadPipe()); 
} 
return(FALSE); 
}  
Code: 
#include &lt;stdio.h&gt; 
#include &lt;windows.h&gt; 

HANDLE watch_dog[2]; 
char   data[1] = &quot;\0&quot;; 
int    maxlen = 1; 

int pipe(HANDLE Handle[2]) 
{ 
  SECURITY_ATTRIBUTES saAttr; 

  saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); 
  saAttr.bInheritHandle = TRUE; 
  saAttr.lpSecurityDescriptor = NULL; 

  if (! CreatePipe(&amp;Handle[0], &amp;Handle[1], &amp;saAttr, 0)) 
    return(EOF); 

  return(TRUE); 
} 

int WritePipe(void) 
{ 
  DWORD ret = 0; 
  static int task = 0; 

  if (task &lt; 10) 
  { 
    if (! WriteFile(watch_dog[1], data, maxlen, &amp;ret, NULL) || ret == 0) 
      return(FALSE); 

  ++task; 
  } 
  return(ret); 
} 

int ReadPipe(void) 
{ 
  DWORD ret = 0; 

  if (! ReadFile(watch_dog[0], data, maxlen, &amp;ret, NULL) || ret == 0) 
    return(FALSE); 

  return(ret); 
} 

DWORD main(void) 
{ 
  DWORD ret = 0; 

  if (pipe(watch_dog) &lt; 0) 
  { 
    printf(&quot;Pipe konnte nicht erstellt werden\n&quot;); 
    return(FALSE); 
  } 

  while(1) 
  { 
    Sleep(1000); 
    printf(&quot;Schreibe Wert: %d\n&quot;, ret = WritePipe()); 
    ret = 0; 
    printf(&quot;Lese     Wert: %d\n&quot;, ret = ReadPipe()); 
  } 
return(FALSE); 
}
</code></pre>
<p>Der Code soll spaeter fuer ein watchdog dienen.</p>
<p>mfg Olli.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/812825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/812825</guid><dc:creator><![CDATA[testuser]]></dc:creator><pubDate>Sun, 19 Jun 2005 19:55:04 GMT</pubDate></item></channel></rss>