Salut,

Conform standardului C, între fread și fwrite trebuie să ai un fseek,
iar în teste se respectă condiția asta. (De asemenea între fwrite și
fread o să ai fseek sau fflush).

În fseek, dacă ultima operație a fost read invalidezi ce era în buffer.

On Sun, 31 Mar 2019 at 10:51, Paul Olaru via so <[email protected]> wrote:
>
> Între fread și fwrite la fișierele cu + este garantat că se va apela un fseek 
> sau fflush. Adică dacă nu e niciun fseek sau fflush între ele teoretic ai 
> avea voie să dai crash. Nu știu ce face glibc în situația asta.
>
> On Sun, Mar 31, 2019, 10:49 Ionuț Mihalache via so <[email protected]> 
> wrote:
>>
>> Salut,
>>
>> Ce se întâmplă dacă după un fread care lasă niște octeți în buffer se face 
>> un fwrite care vrea să scrie mai mult de dimensiunea buffer-ului?
>> Teoretic ar trebui să se invalideze buffer-ul, deci să se aducă cursorul de 
>> fișier înapoi cu un număr de octeți egal cu numărul de octeți din buffer. 
>> Testele verifică și asta? Eu nu invalidez buffer-ul și testele trec, însă 
>> dacă mai adaug și partea asta este posibil să mai apară un apel de sistem în 
>> plus pentru repoziționarea cursorului.
>> _______________________________________________
>> 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