Ich hatte vor einiger Zeit mit PHP und C zu tun, jedoch nicht kombiniert. Deshalb nur ein paar Tipps von verschiedenen Webseiten:
Soll bei jedem PHP-Scriptaufruf das externe Programm neu gestartet, dann kurz Daten ausgetauscht, an den Browser geschickt und dann Programm und Script beendet werden? Das Script beendet erst, wenn das externe Programm geschlossen wird (oder durch Script-Timeout). Da kann man Stdin/Stdout als Kommunikation zum Programm nutzen, keine Ahnung bezüglich Vereinfachung Datenformat.
http://www.php.net/manual/de/function.system.phphttp://www.php.net/manual/de/function.passthru.phpBei Asynchronem Start läuft das externe Programm im Hintergrund weiter (dabei sei das PHP-Speicherlimit zu beachten), bei Neustart des Webservers könne das externe Programm ebenfalls beendet werden. Hier steht etwas zu diesem Thema (externes Programm als Daemon):
http://www.experts-exchange.com/Programming/Languages/CPP/Q_23214463.htmlAls IPC zur Kommunikation zwischen dem kurzlebigen PHP-Script und dem im Hintergrund arbeitenden Daemon könnten Sockets genutzt werden, z.B. TCP oder UNIX-Sockets:
http://ch2.php.net/manual/de/function.socket-create.php(da müsste man sich sicherlich ebenfalls selber um das Datenformat kümmern?!? Oder könnte da PHP über den Socket auch strukturierte XML-Daten entgegennehmen?)
Interessanterweise kann man in PHP sogar persistente Sockets öffnen:
http://ch2.php.net/pfsockopenSo könnte der Daemon so realisiert werden, dass er nur eine TCP-Verbindung akzeptiert und somit kein Durcheinander beim Zugriff auf die Schnittstelle entsteht (geht vielleicht bei den UNIX-Sockets auch). Ich weiss jedoch nicht, wie man den Filepointer auf diesen Socket an andere Scriptinstanzen weitergeben kann. Denn dieser Socket bleibt ja dann geöffnet, obwohl das Script beendet wurde.
Falls es mit PHP/CGI oder was auch immer nicht geht, so müsste halt das Daemon-Programm einen minimalistischen Webserver haben, der HTTP1.0 versteht und so direkt per Browser angesteuert werden kann. Dies ist zwar eine Neuerfindung des Rades, kann dafür auch ohne weiteres auf einem Embedded System laufen (ohne Apache oder sonstigen ressourcenlastigen Webserver).
Just my two cents. Leider keine spezifischere Infos. Übrigens finde ich es gut, dass es eine "Bekannte" ist, denn es gibt in der Informatik sowieso zu wenig Frauen (man glaubt es kaum, in drei Jahren hatte ich einmal das Vergnügen mit einer LON-Spezialistin von Siemens)...
MfG,
Nemo.