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
