From 12b90df8bd89a80c63fd3f10fa086c72ca5e5075 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Sun, 16 Feb 2014 20:11:17 +0100 Subject: [PATCH] o problemima u FIO modulu --- skripta-spa1-sadrzaj.tex | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/skripta-spa1-sadrzaj.tex b/skripta-spa1-sadrzaj.tex index 50655d0..dc453c5 100644 --- a/skripta-spa1-sadrzaj.tex +++ b/skripta-spa1-sadrzaj.tex @@ -644,6 +644,34 @@ pri operacijama otvaranja i zatvaranja fajlova, odnosno neće se pri tome resetovati na \kod{FALSE}, pa na ovo treba obratiti pažnju pri radu. +\subsubsection*{Mogući problemi} + +U ovoj glavi će biti navedeni neki česti problemi koji se mogu desiti +pri korišćenju FIO modula, a koji su vezani za konkretnu +implementaciju u XDS distribuciji kompajlera. + +\paragraph{\kod{RdStr} i drugi pozivi} Prilikom čitanja iz fajlova +može doći do neobičnih rezultata ako se kombinuju pozivi \kod{RdStr} +sa drugima. Problem je u različitom tretiranju separatora. Komanda +\kod{RdStr} uvek čita do kraja reda i pri tome premesti poziciju za +čitanje odmah iza znaka za razdvajanje redova. Ostale komande prvo +preskaču separatore i čitaju sadržaj dok ne naiđu na novi separator +(što može biti novi red, a može biti i razmak, tabulator i neki drugi +znaci) i staju sa čitanjem \emph{pre} tog separatora. Kombinaovanje +ova dva pristupa može dovesti do toga da \kod{RdStr} nakon neke druge +komande učita samo kraj trenutnog reda, a ne sledeći red kao što bi +bilo očekivano. + +\paragraph{EOF i prazan red na kraju fajla} Svako čitanje iz fajla +postavlja \kod{EOF} u skladu sa tim da li je komanda stigla do kraja +fajla ili ne. Nažalost kod svih komandi za čitanje (osim \kod{RdStr}) +postoji problem ukoliko je na kraju prazan red ili neki dodatni +separator. Tada učitavanje poslednjeg elementa nije zapravo došlo do +kraja fajla. Ako se nakon toga proba još jedno učitavanje sa takvom +komandom ona će probati da preskoči separator i da učita neki sadržaj, +ali će se zaglaviti jer ne može da ga nađe. Ovo ponašanje je greška u +implementaciji FIO modula u okviru XDS distribucije. + \subsection{Zadatak: ispis sadržaja fajla na ekran} -- 2.25.1