LINUX.ORG.RU

Как закрыть файл в Bash


0

0

Hi All,

Странные дела у меня с Башем творяться...

открываю файл на чтение и читаю оттуда

5<fromfile

read -u 5

read -u 5

Все работает, если дескриптор 5 не был _уже_ открыт при старте bash.

Но если он уже был открытым, когда bash стартовал, то все мои попытки его переоткрыть/закрыть ни к чему не приводят, строки

5<&-

5<fromfile

просто молча игнорируются, чтение нормально идет, но из того файла, который был открыт раньше.

Это как, нормально? И что делать?

★★★★★

Using file descriptor 5 might cause problems. When Bash creates a child process, as with exec, the child inherits fd 5 (see Chet Ramey's archived e-mail, SUBJECT: RE: File descriptor 5 is held open). Best leave this particular fd alone

anonymous
()

Ухты, а таким же образом можно читать из сокета? А можно ссылку где вас научили так делать? Век живи век учись ...

fura13 ★★★
()
Ответ на: комментарий от anonymous

2anonymous (*) (06.03.2006 15:51:09):

Thanks,

То есть, просто Башевская багофича... Кто б мог подумать!

К сожалению, с любым другим дескриптором происходит то же самое. Похоже, Баш просто не умеет закрывать файлы, которые пережили exec.

Die-Hard ★★★★★
() автор топика
Ответ на: комментарий от Teak

Странно... Я ее просто сбукмаркил час назад, безо всякого рукоблудства. А она, действительно, изменилсь! Мой букмарк больше туда не ведет.

Может, динамическая?

Сейчас она такая:

http://www.tldp.org/LDP/abs/html/x13179.html

Так можно пройти:

http://www.tldp.org/LDP/abs/html/io-redirection.html

вверху будет

Table of Contents

16.1. Using exec

вот сюда^^^^

Die-Hard ★★★★★
() автор топика
Ответ на: комментарий от Die-Hard

Эх, надо будет собраться и прочитать-таки ABS. Вроде всё там в основном известно, судя по оглавлению, однако ж уже в третий раз туда по ссылкам попадаю и нахожу что-то новое :)

Teak ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.