Serghei Amelian scria la data de 21 Ianuarie 2006:
> On Saturday 21 January 2006 17:02, Liviu Daia wrote:
> [...]
>
> > >
> > > Nu abandonez operatia de scriere doar la "broken pipe" ci la orice
> > > alta eroare. E suficient sa-mi dea fwrite() <= 0.
> >
> > Rezultatul lui fwrite(3) poate fi > 0 si sa ai totusi o eroare.
>
> Mmm, cred ca ai dreptate. Daca din 100 de bytes s-au scris 50,
> fwrite() imi va returna 50, right?
fwrite(3) intoarce numarul de "elemente" scrise. Daca dimensiunea
elementului (al doilea parametru) e 1, atunci intr-adevar intoarce 50.
> > Trebuie sa faci testul cu ferror(3), dupa care te poti uita la errno
> > ca sa afli ce s-a intamplat. Nu trebuie insa sa renunti la operatie
> > la orice eroare, exemplul standard este errno == EINTR.
>
> Cand se manifesta EINTR? Nu e cumva doar la operatii neblocante?
Nu, EINTR obtii in cazul in care un semnal asincron intrerupe un
system call.
> Sau il confund cu EINPROGRESS?
Il confunzi cu EAGAIN / EWOULDBLOCK. EINPROGRESS poate fi generat
de connect(2).
Salutari,
Liviu Daia
--
Dr. Liviu Daia http://www.imar.ro/~daia
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug