schönen Freitag miteinander!
Programm1 redet normalerweise per /dev/ttyUSBx mit einer Hardware. Jetzt
soll Programm2 diese Hardware simulieren. Prog1 kann einen symlink (z.B.
"/tmp/hardware") für die Schnittstelle benutzen, dann sieht es sehr
einfach aus:
1 | pts = open("/dev/ptmx", O_RDONLY);
|
2 | path = ptsname (pts);
|
3 | grantpt (pts);
|
4 | unlockpt (pts);
|
5 | symlink (path, "/tmp/hardware");
|
so kann Prog1 sein normales open("/tmp/hardware") machen.
Jetzt muss man "nur noch" dafür sorgen, dass der Link entfernt wird,
wenn Prog2 beendet wird. atexit() funktioniert dafür nur meistens. Ja,
Prog1 könnte das pty in /proc/$(pidof Prog2)/fd/ suchen, aber wie macht
man das normalerweise?