Hello mindenki
Lehet hogy nagy baromsag de ertek mar jo meglepetesek
a linuxban igy akar ezt is el tudom kepzelni hogy mukodik
Furcsa otletem tamadt egy konfig vagy akarmilyen file
igazabol lehet e dinamikus
vagyis ha megnyitok pl egy txt file - akkor igazabol a hatterben
lefut program es amit az kiir az output ra azt kapom vissza mint a file tartalma
tehat ha pl van egy ido.txt nevu allomany aminek a megyitasara elindul egy ido.sh nevu script
ami kiirja az aktualis idot
akkor akarmikor beolvasom az ido.txt -t olyan mintha mindig a pontos ido lenne beleirva
ennek az lenne az ertelme hogy nem kell allandoan aktualizalni az ido.txt -t hanem csak akkor amikor szukseg van ra akkor fut le az a script 1x
remelem ertheto
elore is koszi
- 2075 megtekintés
Hozzászólások
>>Named pipe, de attol, hogy a "tartalma" valtozik, a program, ami azt megnyitotta, meg nem fogja automatikusan ujraolvasni!
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
Koszonom
ez jol nez ki
este kiprobalom
- A hozzászóláshoz be kell jelentkezni
Subscribe :)
Ez még hasznos lehet.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
+1
<-------
You can't grep on dead trees.
- A hozzászóláshoz be kell jelentkezni
A named pipe, mint a neve is mutatja, pipe, nem file. Seek-elni nem lehet benne; csak szekvencialisan olvasni.
- A hozzászóláshoz be kell jelentkezni
Valami biztos van, próbáld ki a
echo $RANDOM
parancsot :)
- A hozzászóláshoz be kell jelentkezni
Környezeti változó vs file?
- A hozzászóláshoz be kell jelentkezni
Ha lehetséges az, hogy egy környezeti változó értéke minden olvasáskor más és más, miért ne lehetne ez egy fájllal is?
- A hozzászóláshoz be kell jelentkezni
Uhhh... remélem ez az érvelés csak vicc volt...
- A hozzászóláshoz be kell jelentkezni
A kezdő hozzászólásom utolsó két karaktere sokat elárulhat.
- A hozzászóláshoz be kell jelentkezni
Mosakszol? :)
- A hozzászóláshoz be kell jelentkezni
Igyekszik az ember :)
- A hozzászóláshoz be kell jelentkezni
sot akkor akar lehetne a palacsintaba is majonezt rakni
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Leteznek sos palacsintak, biztos van olyan, amiben majonez is van.
--
Az emberek azt állítják, hogy múlik az idő, az idő viszont csak mosolyog, mert látja, hogy az emberek múlnak. - tibeti közmondás
- A hozzászóláshoz be kell jelentkezni
[off]
Most elgondolkodtam. Ez a $RANDOM kiíratása hogy működik? Maga a shell nézi, hogy milyen változókra hivatkozik a parancs, és ha azt látja, hogy RANDOM, akkor ő generál egy véletlen értéket, és azt adja vissza? Merthogy itt azt írják, hogy ez egy (belső) függvény.
Esetleg ilyet a felhasználó is kreálhat? Ha már itt vagyunk, akkor egy környezeti változó kiolvasásakor mindig az aktuális dátumot fogja megjeleníteni?
[/off]
- A hozzászóláshoz be kell jelentkezni
Nekem elsőre amúgy az eszközfileok jutottak eszembe... ez nagy baj?
- A hozzászóláshoz be kell jelentkezni
FUSE?
- A hozzászóláshoz be kell jelentkezni
Az tökéletesen tudja ezt az biztos: http://fuse.sourceforge.net/
- A hozzászóláshoz be kell jelentkezni
+1 FUSE (az újraolvasást ez se garantálja, az már csak a program saját joga (együtt örökli az igával))
- A hozzászóláshoz be kell jelentkezni
Ennek a problémának olyan "házi feladat"-szaga van... ;)
- A hozzászóláshoz be kell jelentkezni
Nemtán te is ezt kaptad? :)
- A hozzászóláshoz be kell jelentkezni
Annál sajnos már idősebb vagyok... :)
- A hozzászóláshoz be kell jelentkezni
Akkor te adtad :P
- A hozzászóláshoz be kell jelentkezni
Ez ütött. :D
- A hozzászóláshoz be kell jelentkezni
Nem én voltam, esküszöm! :)
- A hozzászóláshoz be kell jelentkezni
Ez device file, kernelt kell hozza masszirozni (pl. /dev/random, /dev/urandom ilyesmi).
--
Az emberek azt állítják, hogy múlik az idő, az idő viszont csak mosolyog, mert látja, hogy az emberek múlnak. - tibeti közmondás
- A hozzászóláshoz be kell jelentkezni
az megint mas :)
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
vagy FUSE.
- A hozzászóláshoz be kell jelentkezni
Mi alól nyitod meg a fájlt?
Ha valamilyen fájlkezelőből, akkor egy lehetséges megoldás:
A fájlkezelőben megadod, hogy pl. a txt kiterjesztésű fájlokat az akarmi.sh nyissa meg, és természetesen paraméterként megkapja a fájl nevét a script. A scripten belül vizsgálod a fájl nevét. Ha az ido.txt-t akarod megnyitni, akkor lefut az új tartalmat generáló script részlet/függvény, és utána megnyitja a kedvenc editoroddal. Ha nem az ido.txt-t nyitottad meg, akkor nem kell futtatni a generátor függvényt.
-----
"Ember embernek farkasa." Ezért aztán "Holló a hollónak nem vájja ki a szemét."
- A hozzászóláshoz be kell jelentkezni
Ha valamilyen fájlkezelőből
...
pl. a txt kiterjesztésű fájlokat az akarmi.sh nyissa meg
Téged Billy küldött, személyesen, de előtte megfertőzte az agyadat valami m$ vírussal.
Távozz tőlem sá(n)tán! :DD
- A hozzászóláshoz be kell jelentkezni
Úgy látom, hogy a kérdés a "Linux kezdő" címszó alatt jelent meg. Nem vagyok benne biztos, hogy a FUSE-os megoldás a kezdő kategóriába tartozik. Bár az is igaz, hogy nem értek a FUSE-hoz, így nem zárható ki, hogy egyszerűbb, mint egy 6-8 soros shell script.
-----
"Ember embernek farkasa." Ezért aztán "Holló a hollónak nem vájja ki a szemét."
- A hozzászóláshoz be kell jelentkezni
inotify
- A hozzászóláshoz be kell jelentkezni
Ez nekem is eszembe jutott, ki is próbáltam, de nem egészen az.
Első blikkre egy
while true; do inotifywait -e open foo && date > foo ; done
jutott eszembe, de az nem jó, mivel kiolvasáskor még a régi tartalmat fogja látni a cat program, tehát az előző date eredményét.
- A hozzászóláshoz be kell jelentkezni
És akkor itt jön szembe a versenyhelyzet című fogalom. :)
- A hozzászóláshoz be kell jelentkezni
Borzasztó egyszerű... na jó, nem. Szóval írnod kell egy FUSE connectort (Filesystem in Userspace) ami ezt a cuccot kezeli. Na, ezzel egy könyvtárat fölmountolsz és abban lakhat a szuper fájlod. Ha jól látom, van hozzá Python modul is, úgyhogy import Fuse oszt hajrá.
- A hozzászóláshoz be kell jelentkezni
Nem lenne egyszerűbb egy sima 'date' parancs? :)
- A hozzászóláshoz be kell jelentkezni
Őőőő hogyis?
- A hozzászóláshoz be kell jelentkezni
Hát, arra kíváncsi, hogy mennyi az idő...
- A hozzászóláshoz be kell jelentkezni
De ahhoz át kéne írnia azt a valamit, ami fájlból szeretne olvasni :)
Ellenben legalább ennyire egyszerű tmpfs-re rakni a fájlt, és írni egy 10 soros C/perl/python daemont, ami másodpercenként kiírja a date kimenetét. :)
Mivel a program folyamatosan fut, és a memóriában van a fájl, ennek a megoldásnak a terhelése kb. 0.00
- A hozzászóláshoz be kell jelentkezni
biztos csak az egyszerũségért hozott ilyen példát.
nem erre a triviális dologra kell megoldás, hanem a technikai megvalósítására kiváncsi szvsz.
- A hozzászóláshoz be kell jelentkezni
Értem én a problémát, csak a jelentőségét nem fogom... :)
Konkrét megvalósítás meg nyilván attól is függ(het), hogy mivel nyitja meg a szövegfájlt. (Én sima ASCII fájlhoz a vi-t használom, a ~/.exrc fájlba ":r !date", ez a fájlok megnyitásakor beszúrja a fájl végére a dátumot, gondolom, lehet szofisztikáltabban is.) Esetleg jó lenne tudni, hogy mi a valódi probléma, ha ez az "ido.txt" példa csak az egyszerűség kedvéért van.
- A hozzászóláshoz be kell jelentkezni
Ahogy mar mas is javasolta, FUSE. Peldakent alljon az MVFS, ami teljesen hasonlo feladatot lat el.
--
Polarsys - safety critical software development tools | cythoon
- A hozzászóláshoz be kell jelentkezni
Bár tény, hogy mocsokul erőforrás pazarló, de mi lenne, ha a program folyamatosan felülírna a kérdéses file-t? Így bármikor, amikor ráolvasol, mindíg a friss tartalommal szembesülsz. (Tudom, az eredeti feladat arról szólt, hogy akkor generálódjon a file tartalom, amikor épp olvasná valaki - de az pöttyet bonyolultabb ennél. Ezen a ponton tehát az a kérdés, hogy megéri-e a feladat azt a bonyolultságot?) Szépítés: a program csak akkor frissíti a file tartalmat, ha változás van.
- A hozzászóláshoz be kell jelentkezni
Egy abszolút működő megoldást találtam:
$ mkfifo datefile
$ while true; do date > datefile; done&
$ cat date
Meg strace-eltem, amíg nem olvasol nem csinál semmit, semmi erőforrást nem használ.
Csak akkor ír, ha olvasol róla egyet.
- A hozzászóláshoz be kell jelentkezni