2013-06-23 20 views
5

Czy istnieje sposób interakcji z deskryptorami plików bez konieczności otwierania pliku na dysku?Zapis do deskryptora pliku 3 bez zapisywania na dysku?

To nie będzie działać bez pliku uprzedniego przypisanego fd3:

echo a >&3 
+8

Co to jest starasz się osiągnąć ? –

+2

Możesz użyć 'mkfifo', aby utworzyć [kolejkę fifo] (https://en.wikipedia.org/wiki/Named_pipe), która utworzy wpis w systemie plików, ale rzeczywiste informacje o nim będą przechowywane w pamięci. – Kevin

Odpowiedz

12

Zależy od tego, co chcesz zrobić. Załóżmy, że chcesz napisać ciągi w wolnym czasie i wydrukować je w odwrotnej kolejności. skonfigurować przekierowanie deskryptora pliku do zmiany procesów czeka na stdin:

$ exec 3> >(rev) 
$ echo hello world >&3 
dlrow olleh 

Kiedy skończysz z nim, można zamknąć deskryptor

$ exec 3>&- 
$ echo hello world >&3 
bash: 3: Bad file descriptor 
+1

Rozumiem, że ten * jest * na dysku na niektórych platformach (gdzie '/ dev/fd' nie jest dostępny, a tym samym używa nazwanego potoku). –

Powiązane problemy