[OSy] pouzitie standardnej kniznice
Martin Decky
decky at dsrg.mff.cuni.cz
Tue Oct 16 00:03:43 CEST 2007
Hezky den,
> skusali sme dnes implementovat funkcie s premennym poctom parametrov
> (printk,...). Chcel by som sa opytat, ci mozme pri programovani pouzivat
> makra zo suboru stdarg.h (va_start, va_arg, va_end)
Hlavickovy soubor stdarg.h pouzit muzete. Je soucasti cross-compileru a
mapuje va_* funkce na builtin funkce prekladace.
> Dalej by som chcel vediet, ci mozno pouzit
> vprintf a jemu podobne zo stdio.h (aj ked stdio.h sa mi nepodarilo
> naincludovat, co neviem ci je chyba mojho prostredia, alebo jednoducho
> tento subor pre mips nie je).
Funkce vprintf() urcite neni soucasti builtin funkci prekladace, takze
ani stdio.h neni soucasti hlavickovych souboru cross-compileru
(lib/gcc/mipsel-linux-gnu/4.2.1/include).
_Ciste_teoreticky_ je pochopitelne mozne pouzit v kernelu funkce ze
standardni ceckove knihovny (nebo take libovolne jine knihovny), ale
narazite pri tom na celou radu potizi: tu knihovnu musite mit prelozenou
cross-compilerem pro MIPS (nemuzete tedy rovnou pouzit tu, kterou mate
nativne v systemu), spousta jejich funkci bude mit netrivialni vazby na
system, pro ktery je napsana (tj. bude vyuzivat napr. syscally
linuxoveho jadra), vetsina implementaci libc je ponekud nemalych rozmeru
a neni uplne snadne napsat pro ni korektni linker script, takze se pro
pouziti v jadre moc nehodi, a v neposledni rade muze obsahovat celou
radu chyb, ktere budete zarucene lovit dele, nez trva napsani vlastniho
printf() s par formatovacimi prikazy.
Takze zaverem: Bez pouziti stdlibc se urcite obejdete a jeji pouziti
jeji doporuceno.
M.D.
More information about the NSWI004
mailing list