[so] [SO][Tema2][Linux] read() nu seteaza errno

George Diaconu pgn.george at gmail.com
Tue Mar 26 21:28:12 EET 2019


Mersi.
Atunci las sa intoarca 0 sau 1 si nu mai declar tipuri diferite pentru
erori.
Din ce am inteles eu din testul ferror_read_small ar fi trebuit sa fie
setat errno, mai ales ca apelul de sistem read() intoarce totusi -1.


On Tue, Mar 26, 2019, 21:21 Paul Olaru <olarupaulstelian97 at gmail.com> wrote:

> Nu îți pasă de errno. read() original setează errno dar erorile injectate
> de checker pe cazul respectiv nu setează.
>
> so_ferror doar spune dacă a fost o eroare (nu putem identifica de ce tip).
>
> On Tue, Mar 26, 2019, 20:57 George Diaconu via so <so at cursuri.cs.pub.ro>
> wrote:
>
>> Salut,
>>
>> Cum spune si subiectul, apelul read(), in momentul in care intoarce
>> -1, nu seteaza si errno. In manual scrie ca ar trebui sa il seteze,
>> dar totusi, secventa urmatoare de cod:
>>
>> long rc = read(...)
>> int code = errno;
>> printf("%d\n", code);
>>
>> afiseaza intotdeauna 0, chiar si atunci cand read() intoarce -1.
>>
>> Am inclus "errno.h", si nu fac nimic ciudat cu errno (cum ar fi sa-l
>> redeclar).
>> Am doua intrebari:
>> 1. Nu am inteles eu bine cand e setata valoarea intoarsa de errno?
>> 2. E ok daca imi declar singur mai multe coduri de eroare si le intorc
>> pe acestea in so_ferror()?
>>
>> Multumesc anticipat.
>> _______________________________________________
>> http://ocw.cs.pub.ro/courses/so/info/lista-discutii
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20190326/05432c09/attachment.html>


More information about the so mailing list