Portál AbcLinuxu, 14. května 2025 01:18

Dotaz: Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?

10.9.2008 09:48 Thunder.m | skóre: 35 | blog: e17
Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?
Přečteno: 565×
Odpovědět | Admin
Netušíte, jestli mohu napsat program, který by při svém běhu vytvořil vlastní soubory někde v /proc, nebo /sys a ostatní programy si odtamtud mohly klidně číst data? Případně jak by takový ukázkový program mohl vypadat?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Heron avatar 10.9.2008 10:34 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Toto je souborový systém jádra, takže jedině přes ovladač. Pokud hledáš řešení komunikace přes "soubor", je možnost použít pojmenovanou rouru, nebo unix socket. Nebo i obyč. soubor v /tmp s vyřešeným zamykáním.
Heron
10.9.2008 10:58 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?
Díky toho jsem se bohužel bál, jakým způsobem bych mohl udělat toto:

Server běží, klient se spustí a dotáže se serveru na data, ten mu je zašle, pak klient skončí, server dále běží a odpovídá dalším dotazům.

Dá se to udělat pomocí named pipe, nebo je vhodnější jiný mechanizmus? Zajímá mě jen unix, takže klidně řešení, které ve windows nebude fungovat.
Heron avatar 10.9.2008 11:11 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?
Zrovna toto bych dělal přes klasické TCP sockety. Jakékoliv jiné řešení (unix soc, named pipe) by sice také posloužilo, ale v případě rozdělení na dva a více počítačů (server/klienti) se tomu stejně nevyhneš. A řešení přes TCP není o nic složitější než ten zbytek.
10.9.2008 11:42 Ivan
Rozbalit Rozbalit vše Re: Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?
Neni ceho se bat. To co hledate je klasicky unix daemon. Na webu jiste nejdete milion examplu jak to udelat. Je to urcite mnohem snadnejsi nez psat jarderny ovladac, ktery by vam chodil jen na linuxu. Prostredky ktere se vam nabizeji: TCP socket, named pipe, IPC.

10.9.2008 11:50 tom
Rozbalit Rozbalit vše Re: Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?
Nejrychlejsi na komunikaci je sdilena pamet. Ale muzete pouzit vpodstate cokoliv - signaly, sockety, zpravy, roury... Pro seznameni s jednou skupinou operaci zacnete treba v man ipc.
10.9.2008 17:43 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příloha:
Ok, takže jsem to snad napsal, musel jsem přepsat fm, ten pro zasílání informací využívá rouru v adresáři /var/run/fm. Program dávám do přílohy, aby to někdo někdy mohl taky použít :)
10.9.2008 23:14 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?
Příloha:
Vylepšená verze, liší se jen v jednom souboru, snad.
11.9.2008 18:23 Tomas
Rozbalit Rozbalit vše Re: Může program v C vytvořit vlastní soubory v /proc, nebo v /sys?
IMHO pro tento druh IPC je vhodnější dbus.

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.