U N I X
Autor : ing. Ales Limpouch, KP FEL CVUT Praha
6. Prostredky pro programovani v jazyce C

Standardni dodavka OS UNIX obsahuje kompilator jazyka C a nektere
pomocne programy pro usnadneni prace programatora.


6.1 Kompilator C

Zpracovani kompilatorem jazyka C probiha v nekolika fazich.
Obvykle je zdrojovy text souboru s priponou .c prelozen
makroprocesorem (soubor .i). Vysledny text je prelozen
kompilatorem do assembleru (soubor .s) a vysledek prekladu
prelozen assemblerem do object modulu (soubor .o). K tomu
jsou potom sestavovacim programem prilinkovany knihovny
(systemove a uzivatelske) a vytvoren spustitelny program
(impl. ulozen do souboru a.out). Tyto faze jsou vsak
pred uzivatelem do znacne miry skryty.
 

Prikaz pro praci s kompilatorem:

cc [opts] files standardni kompilator jazyka C
-o file jmeno prelozeneho programu
-D ident definice identifikatoru
-E zpracovani pouze makroprocesorem
-p informace pro monitorovani (prof)
-g informace pro dbx
-go informace pro adb


6.2 Vypisy a kontrola programu

pr [opts] [files] priprava textu pro tisk
cxref files generator krizovych odkazu pro jazyk C
lint files kontrola programu v jazyce C
zamerena na prenositelnost konstrukci,
podezrele akce (nedefinovane hodnoty,
nepouzite promenne a funkce, nedostupny
kod, nekonecne cykly) a typovou kontrolu


6.3 Ladeni

size files zjisteni velikosti prelozenych programu
nm files vypis tabulky symbolu programu
prof command vypis vysledku monitorovani programu
(ze souboru mon.out vytvoreneho spustenim
programu prelozeneho s parametrem -p)

adb [-w] [objfile [corfile]]
ladici prostredek na urovni assembleru
w umoznuje modifikaci souboru
objfile soubor s proveditelnym programem
corfile soubor s obrazem pameti po havarii

prikazy:
x,n:ta adresa,delka:typakce akce
adresa je urcena:
cislo presun na adresu cislo
ident presun na adresu ident
typ akce je urcen:
? tisk obsahu ze souboru objfile
/ tisk obsahu ze souboru corfile
= tisk adresy ciselne
: prikaz pro sledovany beh
$ jiny prikaz
! prikaz pro shell
; oddelovac prikazu
format vypisu (typ akce ? a /)
i instrukce
d slovo dekadicky
b slabika oktalove
c slabika znakove
o slovo oktalove
f dve slova v pohyblive carce
s retezec znaku
w str zmena obsahu (2 slabiky)
W str zmena obsahu (4 slabiky)
behove prikazy (typ akce :)
r args spusteni behu
b (br) nastaveni ladiciho zastaveni
D odstraneni ladiciho zastaveni
c pokracovani
s krokovani po instrukcich
ostatni prikazy (typ akce $):
q,
ctrl-d ukonceni ladeni
<f vstup ze souboru f
>f vystup do souboru f
b vypis ladicich zastaveni
c vypis obsahu aktivnich funkci
C vypis aktivnich funkci vcetne
obsahu lokalnich prommennych
r vypis obsahu registru
e vypis externich prommenych
m vypis zpravy o mapovani pameti
l str lokalizace adresy (2 slabiky)
L str lokalizace adresy (4 slabiky)

dbx [opts] [objfile [corfile]]
symbolicky ladici prostredek na urovni C
objfile soubor s proveditelnym programem
corfile soubor s obrazem pameti po havarii


6.4 Tvorba rozsahlych programu

Pro tvorbu a udrzbu rozsahlejsich programovych celku, ktere
sestavaji z nekolika zdrojovych souboru slouzi prikaz "make".
Ten provadi na zaklade souboru, ktery obsahuje popis zavislosti
mezi zdrojovymi soubory a dalsi informace, zpracovani celku
(napr. kompilaci, instalaci ap.)

Pouziti prikazu:

make [opts] [macros] [target]
spusteni prikazu make
-f jmeno souboru pro make (impl. Makefile)
-i ignorovani navratovych kodu
-s tichy rezim
-r vypnuti implicitni zavislosti
-n interpretace makefile bez shellu
-p tisk implicitnich zavislosti a maker
-D ladici rezim make
macros definice maker
target oznaceni casti makefile
 

Definice makefile:

file: files
akce pro file informace o zavislosti souboru
a moznosti vytvorit aktualni soubor
(obecne targets : sources ; commands)
target: navesti (oznaceni casti makefile)
str=strings definice makra ($str rozvine makro)
$* target (bez pripony)
$@ uplna cesta target
$CC identifikace kompilatoru
lze pouzivat i prommene shellu
\ pokracovaci znak
implicitni pripony:
.o relativni (object) modul
.c program v jazyce C
.f program v jazyce Fortran 77
.r program v jazyce Ratfor
.s program v assembleru
.y zdrojovy text pro yacc
.l zdrojovy text pro lex


7. Pouzita literatura

Brodsky, J. - Skocovsky, L.:
Operacni system UNIX a jazyk C. SNTL, Praha, 1989.
Nesvera, S. - Richta, K. - Zemanek, P.:
Uvod do operacniho systemu UNIX. CVUT, Praha, 1991.
Brown, P.J.:
Starting with UNIX. Addison-Wesley, Reading, 1984.
(Vvedenije v operacionnuju sistemu UNIX, Mir, Moskva, 1987.)
Load tento text unix.txt