Что нужно знать обо всем, что связано с файлами (каналы также являются своего рода файлами) в Unix: имя файла используется только при открытии файла. Позже, до тех пор, пока файл не будет открыт, он будет доступен навсегда, пока он не будет закрыт и имя больше никогда не будет использоваться Когда кто-то удаляет файл в другом окне, когда оно открыто, просто исчезает имя, а не файл. Это значит:
- Файл все еще находится на диске
- У него нет имени
- Он все еще открыт
- Когда оно закрыто, ядро удаляет его навсегда
Знание этого, возможно, помогает понять, почему было бы практически невозможно снова «открыть» файл, канал или что-то подобное. Имя файла и дескриптор имеют разное время жизни.
Единственными исключениями являются stdout и stderr, дескриптор которых всегда известен как 1 и 2.