Portál AbcLinuxu, 30. dubna 2025 15:27
Pokud to měl být návod, jak si udělat upravený balíček pro openSUSE, pak bych spíš doporučil
osc checkout openSUSE:Leap:15.2:ksysguard5 # upravit osc build
nebo to rovnou udělat v OBS (a pak už je submit request otázkou jednoho příkazu navíc). Distribuční balíčky vesměs moc nepočítají s tím, že by někdo chtěl používat přímo rpmbuild, takže můžete narazit na různé záhadné problémy.
Ten první příkaz měl být
osc checkout openSUSE:Leap:15.1:Update ksysguard5
/proc/cpuinfo
, kde něco takového nemá šanci fungovat. Správné řešení je nesnažit se odhadnout velikost a načíst celý soubor najednou, ale zpracovávat ho postupně.
mmap()
, nemusím do detailu vysvětlovat, proč na procfs nepůjde použít.
proc_mmap
celkem v jádře existuje. Já tam vidím celé čtyři kusy - z toho tři jsou věci, které mají k něčemu jako /proc/cpuinfo
zatraceně daleko a jeden navíc existuje jen na powerpc.
linux-2.6$ git describe HEAD
next-20200316
linux-2.6$ git grep '[[:space:]]\.mmap[[:space:]]*=' | wc -l
516
Cely ten proc_* je wrapper okolo genericke implementace virtualniho FS v Linuxu, nad kterou je postaveny i sysfs, debugfs, configfs atd.
To jste si ale vymyslel úplně jinou otázku, než na jakou jsem se ptal.
Zkuste se nad tím trochu zamyslet. Ten soubor vzniká on demand a dopředu nezjistíte ani jeho velikost (dostanete nulu). Jak ho chcete mmapovat? Co tomu mmap()
předáte jako velikost?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.