Gistrec

Управление ресурсами в ВЧ 3

Mar 4th, 2019
309
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.38 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Выводим все дескрипторы и позицию каретки
  4. #
  5. # Список дескрипторов содержится в /proc/self/fd/
  6. # Информация о каретке находится в /proc/self/fdinfo/<номер дескриптора>
  7. function printFileDescriptors {
  8.     descriptors=`dir "/proc/$$/fd"`
  9.  
  10.     echo "Process descriptors:"
  11.  
  12.     for fd in $descriptors
  13.     do
  14.         # При вызове команды dir создается дескриптор для получения результата работы dir
  15.         # А так же у bash есть специфичный дескриптор 255
  16.         # Пропускаем их
  17.         if [ "$fd" = "3" ] || [ "$fd" = "255" ]
  18.         then
  19.             continue
  20.         fi
  21.  
  22.         echo -n "$fd - "
  23.  
  24.         cat "/proc/$$/fdinfo/$fd" | grep 'pos' # Вывод позиции каретки
  25.     done
  26.  
  27.     echo ""
  28. }
  29.  
  30. echo "Создали процесс PID: $$"
  31. printFileDescriptors
  32.  
  33. echo "Создали дескриптор на /home/alex/test.txt"
  34. exec 5>"/home/alex/test.txt"
  35.  
  36. # По дескриптору можно получить информацию о файле с помощью stat /proc/self/fd/<номер дескриптора>
  37. stat "/proc/$$/fd/5"
  38.  
  39. printFileDescriptors
  40.  
  41.  
  42. echo "test" >& 5
  43. printFileDescriptors
  44.  
  45. echo "Удалили дескриптор на /dev/null"
  46. exec 5>&-
  47. printFileDescriptors
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment