[so] Demo curs 2 inchidere stdin

Andra Danciu andradanciu1997 at gmail.com
Sun Mar 3 13:37:57 EET 2019


Buna, Razvan!

file1 nu are cuvinte cu mai mult de 9 caractere. Outputul arata asa:

$ ./a.out file1 file2 file3
file descriptor: 0
random
close result: 0
file descriptor: 0
string
close result: 0
file descriptor: 0
something
close result: 0

Multumesc pentru sugestie!

Andra

În dum., 3 mar. 2019 la 13:24, Razvan Crainea <razvan.crainea at gmail.com> a
scris:

> Bună, Andra!
>
> Presupunerea mea este că primul cuvânt din primul fișier are mai mult de 9
> caractere. Poți confirma?
> Dacă este așa, înseamnă că programul tău, după prima citire din fișier,
> suprascrie alte variabile din program (spre exemplu fd), urmând ca apelul
> close(fd) sa închidă alt file descriptor decât 0. Poți afișa codurile de
> retur ale apelurilor open și close?
>
> Numai bine!
>
> On Sun, Mar 3, 2019 at 1:05 PM Andra Danciu via so <so at cursuri.cs.pub.ro>
> wrote:
>
>> Hello!
>>
>> La cursul 2, la unul dintre demo-uri, Razvan Deaconescu a dat close pe
>> stdin, a deschis un fisier si a citit un string cu scanf, presupunand ca
>> scanf-ul va citi din fisier. La curs acest demo nu a mers, nu imi explic de
>> ce. La mine a functionat. Am dat insa de un comportament ciudat.
>>
>> Acestui cod i-am dat ca argumente 3 fisiere random cu text in ele:
>> https://pastebin.com/xhy4gt6d
>>
>> La stdout se afiseaza primele 3 cuvinte din primul fisier, in loc sa
>> afiseze primul cuvant din fiecare fisier. Fisierele sunt, cumva,
>> serializate desi le inchid inainte sa citesc tot continutul (nu imi va citi
>> nimic din fisierul 2 pana nu ajunge la finalul primului fisier). Care e
>> explicatia?
>> _______________________________________________
>> http://ocw.cs.pub.ro/courses/so/info/lista-discutii
>
>
>
> --
> Răzvan Crainea
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20190303/5ee4404e/attachment-0001.html>


More information about the so mailing list