Denna första laboration är uppdelad i två deluppgifter, mcat och mklipp. Det främsta syftet med laborationen är att ge dig övning i grundläggande C-programmering.
Skriv ett mcat-program i C. Kommandot ska ta som argument ett antal filnamn och skriva ut dessa filers innehåll efter varandra på standard output. OBS! Ingen extra information (t ex någon överskrift med filnamnet eller liknande) ska skrivas ut, endast filernas innehåll! För mer information, se man-sidan för cat (ert mcat-program behöver dock inte klara av några andra argument än ett antal filnamn).
OBS! Om inget filnamn ges ska mcat läsa från standard input.
Exempel
Kommandot
mcat fil1 fil2 fil3
ska skriva ut filerna fil1, fil2 och fil3 på
standard output. Se till att du tar hand om eventuella fel som kan uppstå
på
ett korrekt sätt (felutskrift på standard error).
Kommandot
mcat
ska läsa från stdin (tangentbordet i detta fall) och skriva ut
det
inlästa på stdout.
Detta program ska klippa ut ett antal angivna fält (kolumner) från en eller flera textfiler och presentera dessa på standard output. Kommandoraden för mklipp
ska se ut som följer:
mklipp a b [file ...]
De första parametrarna (a och b) anger intervallgränserna för de fält som ska klippas ut. a måste vara mindre eller lika med b och båda parametrarna ska anges som heltal (>=0). Efter intervallgränserna kan ett godtyckligt antal filer att läsa från anges. Dessa ska gås igenom en efter en i korrekt ordning. Om inga filer anges ska mklipp
läsa från stdin.
mklipp 2 0 fil
klippa ut alla kolumner (fält) från nummer två fram till radslut. Man ska också kunna ge både a och b värdet 0 och därmed få alla fält utklippta.
Slutligen ett exempel för att räta ut eventuella frågetecken. Om filen fil1
ser ut som följer:
Detta är en testfil som ligger och skräpar. Den ska vi klippa sönder och samman med vårt nya fina program mklipp!och vi sedan anger kommandoraden:
mklipp 2 3 fil1så ska följande utdata genereras på stdout:
är en ligger och ska vi vårt nya
Alla filer ska finnas i katalogen ~/edu/sysprog/lab1/ och vara läsbara
för
oss labrättare. De ska heta mcat.c
, mcat
samt
mklipp.c
och mklipp
. Vad som ska finnas i dem är ganska självklart. Din
lösning ska
gå att kompilera, köra och rätta utan att vi ska behöva kopiera några
andra
filer.
Inlämnat detta sista datum ska vara på Solaris-maskiner exekverbara mcat- och mklipp-program, en välskriven laborationsrapport (i pappersformat) samt välkommenterad kod (tillsammans med labrapporten). [an error occurred while processing this directive]