Navigationskarta Insitutitionen för Datavetenskap Umeå Universitet

Laboration 1: mcat och mklipp

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.


Deluppgift 1: mcat

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.


Deluppgift 2:mklipp

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.

Några saker att observera:

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 fil1
så ska följande utdata genereras på stdout:

är en
ligger och
ska vi

vårt nya

Filer

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.

Sista inlämningsdag: Kl. 23:59 den 10 september 1999.

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]