Да, это вызовет проблему. Дисковое пространство, используемое удаленными файлами, не будет освобождено для повторного использования, пока последний дескриптор открытого файла не будет фактически закрыт.
В идеале вы должны убедиться, что FD_CLOEXEC установлен во всех файловых дескрипторах; с POSIX 2008 вы можете сделать это, когда файл открывается даже с флагом O_CLOEXEC. Но если вы являетесь частью другого процесса и не отвечаете за его код, тогда это совсем не просто. Ваш выбор - грубая сила и невежество. Вы можете перебирать все дескрипторы, которые, по вашему мнению, могут быть открыты, и закрывать их, игнорируя ошибки дескрипторов, которые уже закрыты. Это грубая сила. Или вы можете игнорировать файлы, которые открыты, и надеяться, что система не слишком сильно застревает. Возможно, вы можете ограничить свой поиск, проверив, сколько файлов вы можете открыть одновременно.