Professional Documents
Culture Documents
Tof-21-2 Linux-C
Tof-21-2 Linux-C
Tof-21-2 Linux-C
Fyrirlestur 2: Linux og C
Hjálmtýr Hafsteinsson
Haust 2021
HÍ notendanafn ykkar
Linux stýrikerfið
Vélbúnaður
Einföld skel:
meðan (satt)
lesa skipun
framkvæma skipun
endir
Skráarkerfi (file system)
• Skilgreint sem stigveldi (hierarchy)
• Rótin er /
– Aðeins ein rót
• / greinir á milli skráasafna í slóð
– Í stað \ í Windows Byrjar í rótinni
cd <nafn>
fer niður í möppuna <nafn>
cd ..
fer upp í foreldramöppu
cd /
fer í rótina
cd ~
fer í heimamöppu notanda
Skrár
• Skrár í Unix eru runa bæta
– Engar innbyggðar skráartegundir
– Ýmsar venjur um endingar
• .c fyrir C forrit, .py fyrir Python, .txt fyrir textaskrár, ...
– Ef nafn skrár byrjar á . þá er hún falin
• Þarf að nota ls -a til að sjá þannig skrár
• Skráarsöfn (möppur) eru sérstakar skrár sem
innihalda upplýsingar um skrár
– Nafn, staðsetningu á diski, stærð, eiganda, ...
Saga C
• Hannað af Dennis Ritchie [1972-73]
– Upphaflega til að skrifa tól fyrir Unix, en síðan
var Unix endurskrifað í C
• Byggt á forritunarmálinu B, en undir áhrifum frá Algol
• Lengi skilgreint af bók eftir Kernighan og Ritchie (K&R)
– Síðan staðlað af ANSI/ISO
– Staðlar: C99, C11 og nú C18
• Ráðandi í Unix/Linux forritun
– Líka mikið notað í ívafsforritun (embedded programming)
Af hverju C?
• C er mun nær vélbúnaðinum en flest önnur æðri forritunarmál
– Auðveldara að laga forritin að vélbúnaðinum
• Mikið notað til að skrifa kerfishugbúnað
– Java sýndarvélin (JVM) er skrifuð í ANSI C
– Linux er skrifað í C (og smá smalamáli)
– Windows er skrifað í C (og C++)
– Oracle gagnasafnskerfið er skrifað í C (og C++)
• Að kunna C mun gera ykkur að betri Java/Python forriturum
– Skiljið betur hvernig ýmislegt er útfært
• Eitt mest notaða forritunarmálið
– Sjá TIOBE vísinn
Halló heimur í C
Nafnið á keyrsluskránni,
Gefa allar viðvaranir annars er það a.out
(Warnings: all)
Búa til kembi (debugging) Ein eða fleiri C
upplýsingar fyrir gdb forritaskrá
Þýðing á C forriti
printf.o Færanlegur
viðfangskóði
• Forvinnsla (preprocessing): (tvíundarkóði)
– Setja inn innfluttar skrár
– Útvíkka fjölva (macro)
• Smali (assembler) hello Tengir
– Býr til vélarmálskóða sem hægt Keyrsluforrit (ld)
er að tengja við forritasöfn (tvíundarkóði)
Framkvæmd keyrsluskráa
• Við keyrum keyrsluskránna hello með:
$ ./hello ATH: ./ á
undan nafninu!