Behöver hjälp med att förstå ett par rader C-kod
Försöker läsa in en sträng tex "+18\n\r" från en COM port.
Problemet är att jag får inte med sista tecknet \r
Vilket resulterar i att nedanstående kod hänger sig.
Triggar jag på näst sista tecknet som kommer in på COM-porten dvs \n.
Då rullar det vidare men nästa gång jag läser av porten kommer det ett \r först..
char buffer[255]; /* Input buffer */
char *bufptr; /* Current char in buffer */
int nbytes; /* Number of bytes read */
Bla bla bla mycket kod. Sedan.
/* read characters into our string buffer until we get a NL */
bufptr = buffer;
while ((nbytes = read(fd, bufptr, buffer + sizeof(buffer) - bufptr - 1)) > 0)
{
bufptr += nbytes;
if ( bufptr[-1] == '\r')
break;
}
Alla förslag, tips och idéer mottages! Även glada tillrop!