Wie überprüfe ich, ob die Datei verwendet wird?

Ich habe eine C++-Anwendung und muss wissen, ob eine Datei von jemandem verwendet wird. Ich kann jeden Shell-Befehl ausführen, aber ich möchte den Befehl lsof zu diesem Zweck nicht ausführen, da ich nicht sicher davon ausgehen kann, dass lsof auf allen Betriebssystemen verfügbar sein wird, oder kann ich das sicher annehmen?

Kommentare sind nicht für längere Diskussionen gedacht; diese Konversation wurde in den Chat verschoben .
Wir schließen Fragen, die mehrere verwandte Fragen stellen. Fühlen Sie sich frei, sich Stack Overflow für Ihre Code-spezifischen Fragen anzusehen - alles andere über API / SDK als - wo bekomme ich sie her, ist hier kein Thema. Lesen Sie hier und auch das Hilfezentrum sorgfältig durch . Die Regeln werden durchgesetzt, da diese Websites eine hohe Sichtbarkeit und einen hohen Datenverkehr aufweisen. Stellen Sie sich vor, Sie fragen dies auf dem zentralen Platz in NYC, einer sehr öffentlichen Ausstellung. Zu guter Letzt und vor allem Willkommen bei Ask Different.

Antworten (2)

Sie können davon ausgehen, dass es lsofauf allen macOS ausgeliefert wird, und Sie können auch die Existenz dieses Befehls überprüfen, bevor Sie ihn aufrufen, indem Sie eine nette freundliche Fehlermeldung protokollieren und / oder eine Nachricht protokollieren, wie Sie es für richtig halten, wenn Sie defensiv codieren möchten.

Sie könnten auch auf einer codeorientierten Website fragen, welche API vorhanden ist, um das Vorhandensein von Dateien zu überprüfen, wenn Sie in einen bestimmten C++-Code einsteigen möchten (was hier nicht zum Thema gehört), aber ausgehend von Ihrer Frage können Sie jedes Befehlszeilentool aufrufen Ihr Das Gesamtdesign kann problemlos in einem C++-Programm unter macOS ausgeführt werden.

Mein Freund, Sie könnten lsof oder den eingebauten 'fuser' verwenden.

sudo fuser -fu [FILEPATH AND FILENAME]

F.