Tengo una aplicación c ++ y necesito saber si alguien está usando un archivo. Estoy de acuerdo con ejecutar cualquier comando de shell, pero no quiero ejecutar el comando lsof para este propósito, ya que creo que no puedo asumir con seguridad que lsof estará disponible en todos los sistemas operativos, ¿o puedo asumirlo con seguridad?
Puede suponer que lsof
se envía en todos los macOS y también puede verificar la existencia de ese comando antes de llamarlo, registrando un mensaje de error amigable agradable o un mensaje de registro como mejor le parezca si desea codificar a la defensiva.
También puede preguntar en un sitio centrado en el código qué API existe para verificar la existencia del archivo si desea ingresar al código C ++ específico (que estaría fuera de tema aquí), pero a partir de su pregunta, suponiendo que puede llamar a cualquier herramienta de línea de comando, su el diseño general está bien para ejecutarse en un programa C++ en macOS.
Amigo, podrías usar lsof, o el 'fusor' incorporado.
sudo fuser -fu [FILEPATH AND FILENAME]
F.
bmike
bmike