GetLine Funktion

Gast #2619499
Lesenswert?

Hallo,

ich habe eine Funktion geschrieben um eine Zeile einer Datei auszulesen.
Manchmal kommt es zu Abstürzen, und ich finde den Fehler nicht.
Kann mal jemand über diese Funktion schauen ob das so passt?
1
S8 GetLine(int fd, char *buf, U8 n)
2
{
3
  U8 charsRead=0;
4
  U8 readChar;
5
  
6
  if(n==0) return (-1);
7
  if (fd < 0) return (-1);
8

9
  nav_select( fd );
10

11
  if ( file_eof() )  return (-1);
12

13
  while(charsRead<n-1)
14
  {
15
    readChar=file_getc();
16
    if(readChar == FS_EOF) return (-1);//break;
17
    if((readChar == '\n')||(readChar == '\r')) {if(charsRead>0) break;}
18
    else
19
    {
20
      *buf++ = readChar;
21
      charsRead++;
22
    }
23

24
  }
25

26
  *buf = '\0';
27

28
  return charsRead;
29
}

n = maximal 100

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren