W dniu 8 marca 2013 18:41 użytkownik Bartlomiej Zimon <[email protected]> napisał:
> Wszystkie te bledy znajduja sie w bibliotece tndb.
> Wyglada to na jakis blad optymalizacji kompilacji,
> bo normalnie takie cos dziala w C poprawnie:
> (fragment pliku poldek/tndb/write.c:tndbw_close)
>
>     ntotal = 0;
>     while ((nread = read(fdin, buf, sizeof(buf))) > 0) {
>         if (write(fdout, buf, nread) != (int)nread)
>             goto l_end;
>         ntotal += nread;
>     }
>
> W naszym problemie mamy:
> nread = -1, a mimo to petla sie wykonuje.
>
> warunek (-1 > 0) to normalnie false ;/


Zmienna nread jest złego typu. unsigned int zamiast ssize_t.


-- 
Marcin Banasiak
_______________________________________________
pld-devel-pl mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl

Odpowiedź listem elektroniczym