2016-05-18 7 views
0

Gibt es einen Weg in Linux, das ist einigermaßen portabel (hauptsächlich zu OSX/BSDs), auf einen Prozess zu warten, um eine Datei zu öffnen? Ich weiß, dass ich inotify dafür verwenden kann, aber OSX unterstützt es nicht. Eine Einschränkung ist, dass ich die PID des Prozesses nicht wirklich kennen werde, also ist es exec() - ed über/bin/sh wie popen, so dass nur die Überwachung des Verzeichnisses/proc // fd nicht funktioniert.Portable Art zu warten, bis der Prozess die Datei öffnet?

Antwort

2

Es gibt mehrere verfügbare Bibliotheken oder Befehlszeilentools, die für diesen Zweck geeignet sind, mit Backends, die Linux und MacOS umfassen.

Betrachten Sie fswatch, oder einer seiner Konkurrenten (wenn wir uns auf einzelne Bibliotheken zu diskutieren, wäre dies in explizit-off-topic Territory).

+0

Ich hatte gehofft, eine Bibliothek zu vermeiden, aber Ihr Link gab mir den Tipp, kqueue, also vielleicht kann ich einfach einen Monitor mit dieser API und #ifdef schreiben, wenn ich nicht unter Linux bin ... –

+0

fswatch braucht N verschiedene Backends, weil es * keinen einzigen effizienten, tragbaren Ansatz gibt - wenn das der Fall wäre, wäre das Tooling für den Job viel einfacher. –

Verwandte Themen