Как применить эффект реверберации к аудиофайлам только с помощью инструментов командной строки?

  1. Да, в Linux (и всех других POSIX-совместимых ядрах )индексный дескриптор файла будет существовать до тех пор, пока его не закроют все процессоры. Сюда входят mmaped-файлы.

    Это требуется POSIX:

    The mmap() function adds an extra reference to the file associated with the file descriptor fildes which is not removed by a subsequent close() on that file descriptor. This reference is removed when there are no more mappings to the file.

  2. Open/mmap символической ссылки отслеживает только индексный дескриптор целевого файла (, за исключением крайнего случая использованияO_PATH). Все символические ссылки в пути разрешаются при вызове open(), а дескриптор файла ссылается только на целевой файл.

    Вы можете проверить это:

    1. создать файл/tmp/original
    2. создать символическую ссылку /tmp/symlink, указывающую на/tmp/original
    3. открыть /tmp/symlinkв программе например. введите в оболочке Pythonf = open('/tmp/symlink', 'r')
    4. посмотри на/proc//fd
    5. дескриптор файла будет указывать на/tmp/original
  3. Убедитесь, что при перекомпиляции файл.so действительно удаляется и создается заново, а не записывается напрямую, и что длительный процесс не использует, например,. dlopenдля динамического повторного открытия файла.so.

    Другая возможность, о которой я могу думать, заключается в том, что ленивая привязка приводит к отсрочке загрузки файла.so в долго выполняющемся процессе.

    Вы можете попробовать запустить длительный процесс с LD_BIND_NOW=1в среде, а затем посмотреть, не приведет ли перекомпиляция к сбою процесса, чтобы проверить, не вызвана ли проблема отложенным связыванием.

0
01.10.2020, 22:37
1 ответ
1
18.03.2021, 23:00

Теги

Похожие вопросы