Hi!
Es gibt in /dev/ ja einige "Dateien", die bei Anfrage (und nur dann) einen bestimmten Output ausgeben, so z.B. /dev/random oder /dev/zero. Ich möchte sowas ähnliches selbst machen, also man öffnet z.B. ~/.sig und wenn man die öffnet, wird ein Programm ausgeführt, das dann dynamisch einen gewissen Content in diese Datei schreibt und an denjenigen leitet, der die Datei geöffnet hat. Zum Schluss wird dann ein EOF-Character geschickt und damit signalisiert, dass die Datei zu Ende ist.
Geht sowas? Wie lässt sich so etwas realisieren? Geht das nur auf Kernel-Ebene?
Bye
g-henna
Dynamische Dateien wie in /dev/ selbst schreiben
Dynamische Dateien wie in /dev/ selbst schreiben
follow the penguin...
- godsmacker
- Beiträge: 902
- Registriert: 16.03.2003 21:50:26
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: Chemnitz
-
Kontaktdaten:
Hi!
Bye
g-henna
Und wie wird dann sichergestellt, dass mein Script genau dann gestartet wird, wenn ein anderes Programm auf die Datei zugreift? Oder muss es die ganze Zeit im Hintergrund laufen? Und woran merke ich, dass ein Prozess jetzt den aktuellen Inhalt gelesen hat und ich was neues reinschreiben muss? Wie läuft das?godsmacker hat geschrieben:Klar, mit FIFOs (named pipes) geht das.
Bye
g-henna
follow the penguin...
- weedy
- Beiträge: 585
- Registriert: 02.11.2002 21:47:49
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Es müsste dann immer ein Programm im Hintergrund laufen. Leg Dir mal ein Testdir an, gehe mit 2 Konsolen da drauf und probier folgendes:g-henna hat geschrieben:Hi!
Und wie wird dann sichergestellt, dass mein Script genau dann gestartet wird, wenn ein anderes Programm auf die Datei zugreift? Oder muss es die ganze Zeit im Hintergrund laufen? Und woran merke ich, dass ein Prozess jetzt den aktuellen Inhalt gelesen hat und ich was neues reinschreiben muss? Wie läuft das?godsmacker hat geschrieben:Klar, mit FIFOs (named pipes) geht das.
Bye
g-henna
Konsole 1:
Code: Alles auswählen
mkfifo ox
while sleep 1; do date >ox && echo ok; done
Code: Alles auswählen
cat ox
cat ox
cat ox
weedy.