Salut,

Da, apelul read este înterceptat de un hook care doar întoarce -1. Am
decis să nu vă bag și în errno pentru că s-ar fi complicat destul de
mult implementarea. Cam fiecare funcție poate seta errno la diferite
valori, ar fi fost mult de implementat și testat.

On Tue, 26 Mar 2019 at 21:36, Paul Olaru via so <[email protected]> wrote:
>
> Păi eroarea e una făcută de ei, nu una reală, de-aia errno nu e setat. Ei 
> înlocuiesc apelul normal de read cu unul al lor care simulează eroare dar 
> omite să seteze și errno.
>
> On Tue, Mar 26, 2019, 21:28 George Diaconu <[email protected]> wrote:
>>
>> 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 <[email protected]> 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 <[email protected]> 
>>> 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
>
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Raspunde prin e-mail lui