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 <[email protected]> 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 <[email protected]> > 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 >
_______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
