ProgUnixon

A VIK Wikiből
A lap korábbi változatát látod, amilyen Unknown user (vitalap) 2012. október 21., 21:08-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Infoalap|ProgUnixon}} A hszk gépeiről be lehet jelentkezni grafikusan az ural2-re is (ez az alapértelmezett beállítás). A megjelenő loginablakb…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


A hszk gépeiről be lehet jelentkezni grafikusan az ural2-re is (ez az alapértelmezett beállítás). A megjelenő loginablakban a szokásos témaszámot és jelszót kell megadni, általában angol billentyűkiosztás szerint!

Következzék néhány tanács.

Vim

Aki hatékonyan akar kódot szerkeszteni, mindenképpen tanulja meg a vim (esetleg emacs) használatát. Ebben segít az ural2-n is megtalálható vimtutor nevű bináris. (Van magyar fordítása is. Lásd hupwiki.)

Érdemes ismerni a :make, :cl, :cn parancsokat, amelyekkel make-elhetünk, hibalistát tekinthetünk meg, és azon ugrálhatunk.

Jelenleg friss vim van az ural2-n, ha esetleg elavulna, küldjetek egy mailt a hszk-nak, frissíteni fogják.

Az ural2-n lévő xterm nagyon régi, úgyhogy érdemes a gvim futtatása, ez jól színez xterminálon. Otthonról való használatra javasolt a terminál megfelelő beállítása (echo 'TERM=xterm-color' >> ~/.profile; source ~/.profile).

Ha mást nem is, egy "syntax on" és "filetype plugin indent on" sort érdemes beírni a "~/.vimrc"-be.

Lásd még: Prog2Vi

Makefile

Érdemes a legkisebb projektekhez is Makefile-t készíteni, ami egyszerűsíti a fordítás folyamatát.

Egy "Makefile" nevű fájlt kell az adott könyvtárban létrehozni, majd a make parancs lefordít mindent, ami frissült.

A különálló programokat érdemes külön könyvtárban tárolni. Egy forrásfájlból álló C programhoz egy Makefile így néz ki (fontos, hogy a tab ne szóközökből álljon, mert ez hibás működéshez vezet):

CFLAGS=-lm -g # gcc flagek: math modul linkelése, debug mód
valami: valami.c # valami előállítása valami.c-ből (implicit szabályok szerint)
clean: # "make clean" törli a szemetet
	rm -f valami *.o

(C++-hoz ugyanez, csak forrásfájl nevének a vége .cpp legyen.)

Több modulból álló program esetén valami ilyesmire lesz szükség (a {foo,bar,baz}.{h,c} fájlokból fordít):

CFLAGS=-lm -g
OBJS=foo.o bar.o baz.o
# default cél: tárgykód összeszerkesztése ./valami kimenettel
valami: ${OBJS}
		  ${CC} -o $@ ${CFLAGS} ${OBJS}
clean:
		  rm -f valami *.o
foo.o: foo.c foo.h bar.h # függőségek, mindig a legelső a forrásfájl
# nem kell konkrét parancs, kiterjesztésből tudja a make
bar.o: bar.c bar.h
# baz.o default marad

C++ fordítására a "g++" nevű program szolgál (ez van a CXX makróban), és az előző Makefile működik vele. (A g++ kapcsolóit a CXXFLAGS makró tárolja.)


gdb

Prog2-ből szerepel is az anyagban a gdb. Egyszerűen használható parancssoros debugger. "gdb ./programneve" paranccsal indítható. "r"-rel indítod a programot, ctrl-z-vel megszakítod, c-vel folytatod, s-sel lépkedsz, bt-vel megnézed az elszállt programod stackjét, b-vel breakpointot raksz le, q-val kilépsz. Üres sorra entert ütve az előző parancsot ismétled.

Uralon nincs (mivel Solarisra nem portolták), de érdemes még kipróbálni a valgrind-ot, megmutatja, hol szivárog a memória, vagy hol vétettél csúnya hibákat.

screen

Ha nem akarsz hat ablakot nyitva tartani, használd a screen-t. Alapból kicsit fapados, de remek leírásokat találni róla. Ural2-n SIGHUP-ra leáll a screen is.

Esetleg elég lehet a Ctrl-Z, fg, bg, jobs parancsok ismerete is.

apróságok

  • Ha a PATH környezeti változóban nincs benne (echo 'PATH=$PATH:.' >> ~/.profile) a (mindenkori) aktuális könyvtár, ./bináris_neve módon futtathatod a programodat.
  • Unix alatt ctrl-d a szokásos eof-vezérlőkarakter, ctrl-c az interrupt. (stty-vel variálható).
  • ~/.profile-ba érdemes rakni egy "export PS1"-et, hogy a subshellekben is legyen szép prompt
  • szintén ~/.profileban érdemes a preferált szerkesztőt is megemlíteni ("EDITOR=vim")
  • billentyűkiosztás váltása

Függvényreferencia

Az ural2-n telepítve van, Ubuntu és Debian alatt pedig például a manpages-dev csomag tartalmazza a glibc (GNU C Library) dokumentációját. Így például a "man -s 3c printf" (ural2-n) vagy "man 3 printf" (Linuxon) paranccsal elérjük a printf függvénycsalád leírását.

szkriptek

Prog2ShellScriptTutorial


Lásd még

Kápolnai Richárd bevezetője hasonló témában, emacs-finomságokkal, gdb-leírással

-- maat - 2009.05.28.