lesen von stdin endet in einer Endlosschleife ....

08/10/2015 - 15:40 von Walter H. | Report spam
Hallo,

folgendes Code-Snippet làuft in eine Endlosschleife, nur warum?

char* psz = szBuf; /* szBuf ist ein hinreichend */
/* großer statischer Buffer */
int nLen;

while ( ( nLen = read( 0, psz, 256 ) ) > 0 )
{
psz += nLen;
*psz = '\0';
}

Grüße,
Walter
 

Lesen sie die antworten

#1 Thomas Richter
08/10/2015 - 15:54 | Warnen spam
On 08.10.2015 15:40, Walter H. wrote:
Hallo,

folgendes Code-Snippet làuft in eine Endlosschleife, nur warum?



Nicht endlos, nur eben bis zum Auftreten eines Fehlers. Ein EOF ist kein
Fehler. read() liefert eben nur die Anzahl der gelesenen Zeichen zurück,
und das sind eben weniger als 256, speziell eben auch 0.

Ähnliche fragen