Как проверить, используется ли файл?

У меня есть приложение С++, и мне нужно знать, используется ли кто-либо одним файлом. Я согласен с запуском любой команды оболочки, но я не хочу запускать команду lsof для этой цели, так как я не могу с уверенностью предположить, что lsof будет доступен во всех ОС, или я могу с уверенностью предположить это?

Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Мы закрываем вопросы, которые задают несколько связанных вопросов. Не стесняйтесь заглядывать в Stack Overflow для вопросов, связанных с вашим кодом — все, что касается API / SDK, кроме того, где я могу их получить, здесь не по теме. Внимательно прочитайте справочный центр здесь и также. Правила соблюдаются, поскольку эти сайты хорошо видны и имеют высокий трафик. Учтите, что вы спрашиваете об этом на центральной площади в Нью-Йорке — очень публичном месте. Наконец, и самое главное, добро пожаловать на Ask Different.

Ответы (2)

Вы можете предположить, что lsofон поставляется на всех macOS, и вы также можете проверить существование этой команды перед ее вызовом, зарегистрировав приятное дружественное сообщение об ошибке или сообщение журнала по своему усмотрению, если вы хотите использовать защитный код.

Вы также можете спросить на сайте, ориентированном на код, какой API существует для проверки существования файла, если вы хотите перейти к конкретному коду С++ (который здесь не по теме), но из вашего вопроса, предполагая, что вы можете вызвать любой инструмент командной строки, ваш общий дизайн подходит для выполнения в программе на C++ в macOS.

Друг мой, ты можешь использовать lsof или встроенный «фьюзер».

sudo fuser -fu [FILEPATH AND FILENAME]

Ф.