Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Выводим все дескрипторы и позицию каретки
- #
- # Список дескрипторов содержится в /proc/self/fd/
- # Информация о каретке находится в /proc/self/fdinfo/<номер дескриптора>
- function printFileDescriptors {
- descriptors=`dir "/proc/$$/fd"`
- echo "Process descriptors:"
- for fd in $descriptors
- do
- # При вызове команды dir создается дескриптор для получения результата работы dir
- # А так же у bash есть специфичный дескриптор 255
- # Пропускаем их
- if [ "$fd" = "3" ] || [ "$fd" = "255" ]
- then
- continue
- fi
- echo -n "$fd - "
- cat "/proc/$$/fdinfo/$fd" | grep 'pos' # Вывод позиции каретки
- done
- echo ""
- }
- echo "Создали процесс PID: $$"
- printFileDescriptors
- echo "Создали дескриптор на /home/alex/test.txt"
- exec 5>"/home/alex/test.txt"
- # По дескриптору можно получить информацию о файле с помощью stat /proc/self/fd/<номер дескриптора>
- stat "/proc/$$/fd/5"
- printFileDescriptors
- echo "test" >& 5
- printFileDescriptors
- echo "Удалили дескриптор на /dev/null"
- exec 5>&-
- printFileDescriptors
Advertisement