Portál AbcLinuxu, 18. července 2025 05:34


Dotaz: programování + procfs

12.11.2006 20:46 ext3fs
programování + procfs
Přečteno: 108×
Odpovědět | Admin
Ahoj, mám menší dotaz ohledně procfs. V jisté aplikaci (jazyk C) potřebuji číst z /proc/net/* informace, nejlépe v reálném čase, nebo alespoň velmi často za vteřinu. A jde mi o tohle:

1/ čtu-li pomocí fce fread, je lepší nechat soubor stále otevřený pro čtení a nebo ho při každém přečtení uzavřít? Respektive, když bude otevřený a kernel aktualizuje informace v souboru budu je schopen stále číst?

2/ Jaké je lepší řešení? :)

Děkuji.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.12.2006 07:59 luko | skóre: 3
Rozbalit Rozbalit vše Re: programování + procfs
Odpovědět | | Sbalit | Link | Blokovat | Admin
No možná by bylo lepší a méně náročné používat klasické write() z knihovny unistd.h
19.12.2006 10:03 Michal Hocko | skóre: 7
Rozbalit Rozbalit vše Re: programování + procfs
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravim.

Myslim, ze ci uz pouzijes read alebo fread je to v podstate jedno. Rozumne je vzdy precitat cely subor (typicky nie vela dat - je to proc) a ked sa potrebujes pozriet na obsaj znovu, tak lseek (pripadne fseek) na zaciatok a citat znovu.

Ad 2. lepsie riesenie ma velmi nenapada, aj ked asi nejake existuje. Proc subory neexistuju niekde realne ulozene, takze sa ich obsah vacsinou vytvara, ked ho niekto z user spacu cita. Navyse malo ktory (momentalne ma ziaden ani nenapada) proc file podporuje poll (select), takze sa o zmenach nedozvies od systemu a musis to skusat sam (ale hovorim, mozno existuje sposob ako prinutit kernel aby notifikoval o zmenach inac). Kazdopadne vacsina proc suborov ma implementovane len open, read, seek (niektore ktore umoznuju aj vstupy write).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.