Portál AbcLinuxu, 10. května 2025 00:30

Dotaz: Predavani dat pomoci souboru

4.12.2013 19:18 Lubomir
Predavani dat pomoci souboru
Přečteno: 1131×
Odpovědět | Admin
MUzete me prosim nakopnout spravnym smerem ?

Potrebuji vytvorit v soubor, ve kterem se budou periodicky menit udaje. Stejne jako pracuje predavani udaju z kernelu - /proc/*. Netusim na co se mam zamerit.

Řešení dotazu:


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

Odpovědi

4.12.2013 20:50 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžeš napsat modul FUSE.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Řešení 1× (rADOn)
4.12.2013 22:34 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak je tam prostě periodicky zapisuj ;-)

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
rADOn avatar 5.12.2013 16:35 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Akorat by se sluselo podotknout ze by mel nejak poresit soubezny pristup, bud zamykanim nebo psat nekam bokem a pak to prohodit.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
5.12.2013 21:11 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
To asi záleží na množství dat. Pokud soubor budou malá data pod jeden či dva bloky FS(disku) tak mám dojem že tyhle velikosti se čtou/píšou v atomické operaci.
5.12.2013 21:15 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Záleží na nastavení. Například v PHP bývá tato hodnota defaultně nastavena na 8 KiB a dá se měnit v konfiguraci.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
6.12.2013 07:58 Lubomir
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Jedna se o cca 200 byte
rADOn avatar 6.12.2013 12:09 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Bloky filesystému jsou jen jedna z věcí které to mohou způsobit. Třeba v libc je další vyrovnávací paměť která se ti teoreticky může měnit pod rukama. (Prakticky je Ulrich velmi konzervativní takže reálně se takové změny dějí minimálně, ale je lépe na to nespoléhat.) Nebo můžeš skončit na bůhvíjakým podivným FUSE fs… prostě pokud nejedeš O_DIRECT (což je málokdy dobrý nápad) tak není nic jisté. A přihodit nějakej ten atomickej rename nebo to obložit flockama přece není tolik práce…
"2^24 comments ought to be enough for anyone" -- CmdrTaco
Josef Kufner avatar 5.12.2013 21:26 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Něco lze také podchytit syntaxí dat v souboru. Pokud bude kus chybět, parser by to měl poznat. Ale obyčejný flock bude lepší řešení.
Hello world ! Segmentation fault (core dumped)
5.12.2013 22:16 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Pravda slušelo, ale čekal jsem nějakou reakci (otázka byla strašně jednoduchá, stejně jako odpověď).
Většinou stačí zapisovat do .tmp a udělat 'mv' (na jednom fs).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 5.12.2013 22:23 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Akorát, že to mv dělá docela bordel s oprávněníma upravovaného souboru. Navíc to vyžaduje práva k zápisu do nadřazeného adresáře.
Hello world ! Segmentation fault (core dumped)
6.12.2013 07:57 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Pokud to budu dělat v bash-i tak je to to nejjednodušší a bordel s oprávněními lze předem nastavit, takže vlastni mv, žádný bordel neudělá, pokud to budu dělat v C tak, použiji třeba flock, ale ten zas způsobí problémy se čtením, pokud objem dat je menší než 512B tak to nebudu vůbec řešit.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 6.12.2013 10:47 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Oprávnění předem nastavit nemusí jít, např. nezměníš vlastníka souboru. Nebo nemusíš mít práva k zápisu do adresáře, kde ten soubor je.
Hello world ! Segmentation fault (core dumped)
6.12.2013 07:57 Lubomir
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
souborovy system je na flash disku. takze bych musel nastavit nejakej ramdisk. mam malo pameti.
6.12.2013 08:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Co tam chceš zapisovat, kolik toho je, není to náhodou tak, že chceš přes soubor předávat informace mezi dvěma aplikacemi, tedy chceš v jedné zapisovat a v druhé číst, to pak může být dobrá pojmenovaná roura mkfifo.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
6.12.2013 09:10 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Aby nakonec nestačila obyčejná roura :-)
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
9.12.2013 21:21 Lubomir
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Pojmenovana roura je to co hledam. Dik.
9.12.2013 21:36 Lubomir
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Safra neni tu uplne to co potrebuju. Ceka se na precteni dat z roury. Pricemz ja potrebuju aby se datat periodicky menila (bez nutnosti vyprazdneni roury). Takze spis neco na zpusob filesystemu.
Josef Kufner avatar 9.12.2013 21:46 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Pojmenovaná roura je ošklivá věc. Mnohem lepší je unixový socket. Mnohem lépe se chová, zejména pokud máš více příjemců.

Můžeš udělat jednoduché pub-sub udělátko právě nad unixovým socketem, kdy klient se připojí a řekne, co ho zajímá. A server mu pak bude posílat info, když se to změní.
Hello world ! Segmentation fault (core dumped)
9.12.2013 23:11 Lubomir
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Reseni by se melo uplatnit v regulaci. Mam 1wire system ktery pouziva linuxovy owfs. Filesystem s prehledem cidel. Ted do systemu potrebuji pripojit dalsi zarizeni (FVE wattrouter) a predstavoval jsem si, ze to udelam podobne. Tedy nejaky fvefs a budu sledovat toky energii. V perlu je nejaka knihovna fuse, ovsem nenasel jsem pres google nejake pouzitelne priklady. Pojmenovana roura se ukazala jako nepouzitelna. Socket je pouzitelny, ale me by se libilo neco na zpusob filesystemu.
Josef Kufner avatar 9.12.2013 23:57 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
FUSE (a myslím, že jaderné VFS bude velmi podobné) funguje tak, že tvému programu předává systémová volání nad filesystémem a ty na ně odpovídáš dle svého uvážení. Takže není třeba soubor aktualizovat, ty vygeneruješ odpověď, když je vyžádána.

Pokud píšeš i driver, tak se na fuse vykašli a implementuj to rovnou v jádru. Asi bude rozumné opisovat od toho owfs, ale nekoukal jsem na jeho kód.

Fuse program vypadá tak, že naplníš strukturu pointerama na svoje funkce a předáš to do fuse_main. Návod a druhý návod.
Hello world ! Segmentation fault (core dumped)
8.12.2013 12:28 mike
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
A komu potrebujes ty data predavat? Ja bych normalne vytvoril soubor, hodil ho na flashku a pak bych to predal bud sam nebo poslal postou.
9.12.2013 21:37 Lubomir
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Potrebuju periodickou zmenu, dat (v radech sekund). Je to meziprocesorova komunikace. Bezici daemon vypousti data a neco jineho je pak cte. Co to bude neni uplne dopredu jiste. Muze to byt jiny daemon, nebo zvedavy uzivatel.
10.12.2013 10:32 axel
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Pro IPC lze pouzit radu postupu. Napr. shared memory je urcite jednodussi na implementaci nez "jakoby filesystem", pokud mas obe strany pod kontrolou. Pro obecny pristup read-only pak muzes napsat vlastni miniutilitku ala cat, ktera vypise, co potrebujes (muze mit na rozdil od cteni souboru parametry), a na jejim zaklade to integrovat v zasade do cehokoliv. Psat modul do jadra apod. se mi zda pro takovy ucel ponekud overkill.
13.12.2013 23:54 ::: | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Predavani dat pomoci souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mam z tyhle otazky a diskuze pocit ze autor by si mel precist tohle:

http://catb.org/esr/faqs/smart-questions.html#goal

:-)

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.