<div dir="auto">Oricum la open ar fi fost ENOENT, EPERM, EIO, la read și write cred că doar EIO, mă îndoiesc că EINTR va fi acolo, EAGAIN se dă doar la nonblocking... Chiar și așa, complicat dacă ar fi contat. Deci da, un simplu -1 a simplificat suficient. Nici ferror din <stdio.h> nu returna ce eroare a fost nu?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 27, 2019, 11:55 Adrian Șendroiu via so <<a href="mailto:so@cursuri.cs.pub.ro">so@cursuri.cs.pub.ro</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Salut,<br>
<br>
Da, apelul read este înterceptat de un hook care doar întoarce -1. Am<br>
decis să nu vă bag și în errno pentru că s-ar fi complicat destul de<br>
mult implementarea. Cam fiecare funcție poate seta errno la diferite<br>
valori, ar fi fost mult de implementat și testat.<br>
<br>
On Tue, 26 Mar 2019 at 21:36, Paul Olaru via so <<a href="mailto:so@cursuri.cs.pub.ro" target="_blank" rel="noreferrer">so@cursuri.cs.pub.ro</a>> wrote:<br>
><br>
> 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.<br>
><br>
> On Tue, Mar 26, 2019, 21:28 George Diaconu <<a href="mailto:pgn.george@gmail.com" target="_blank" rel="noreferrer">pgn.george@gmail.com</a>> wrote:<br>
>><br>
>> Mersi.<br>
>> Atunci las sa intoarca 0 sau 1 si nu mai declar tipuri diferite pentru erori.<br>
>> 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.<br>
>><br>
>><br>
>> On Tue, Mar 26, 2019, 21:21 Paul Olaru <<a href="mailto:olarupaulstelian97@gmail.com" target="_blank" rel="noreferrer">olarupaulstelian97@gmail.com</a>> wrote:<br>
>>><br>
>>> Nu îți pasă de errno. read() original setează errno dar erorile injectate de checker pe cazul respectiv nu setează.<br>
>>><br>
>>> so_ferror doar spune dacă a fost o eroare (nu putem identifica de ce tip).<br>
>>><br>
>>> On Tue, Mar 26, 2019, 20:57 George Diaconu via so <<a href="mailto:so@cursuri.cs.pub.ro" target="_blank" rel="noreferrer">so@cursuri.cs.pub.ro</a>> wrote:<br>
>>>><br>
>>>> Salut,<br>
>>>><br>
>>>> Cum spune si subiectul, apelul read(), in momentul in care intoarce<br>
>>>> -1, nu seteaza si errno. In manual scrie ca ar trebui sa il seteze,<br>
>>>> dar totusi, secventa urmatoare de cod:<br>
>>>><br>
>>>> long rc = read(...)<br>
>>>> int code = errno;<br>
>>>> printf("%d\n", code);<br>
>>>><br>
>>>> afiseaza intotdeauna 0, chiar si atunci cand read() intoarce -1.<br>
>>>><br>
>>>> Am inclus "errno.h", si nu fac nimic ciudat cu errno (cum ar fi sa-l redeclar).<br>
>>>> Am doua intrebari:<br>
>>>> 1. Nu am inteles eu bine cand e setata valoarea intoarsa de errno?<br>
>>>> 2. E ok daca imi declar singur mai multe coduri de eroare si le intorc<br>
>>>> pe acestea in so_ferror()?<br>
>>>><br>
>>>> Multumesc anticipat.<br>
>>>> _______________________________________________<br>
>>>> <a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a><br>
><br>
> _______________________________________________<br>
> <a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a><br>
_______________________________________________<br>
<a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a></blockquote></div>