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

2

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

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

Ответы:

2

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

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

bmike
источник
0

Мой друг, вы можете использовать lsof или встроенный 'fuser'.

sudo fuser -fu [FILEPATH AND FILENAME]

F.

Фрэнсис из ResponseBase
источник