How about an ioctl() interface in Hijack which lets user apps (in this case, GPSapp) register a /proc entry and another ioctl() for them to publish information to that /proc entry. Then Hijack stays out of the business of parsing NMEA/TSIP/whatever.
So gpsapp would do its normal parsing of whatever GPS data is there, and register a proc entry with something like
char szProcFilename[16] = "empeg_gps"
char szGpsBuffer[4096];
rc = ioctl(fd, EMPEG_HIJACK_PROCREGISTER, &szProcFilename);
// parse GPS data, put it into text buffer szGpsBuffer
rc = ioctl(fd, EMPEG_HIJACK_PROCPUBLISH, &szGpsBuffer);
.
Then any app can put an entry in /proc, and any other apps can go and read that data. Worthwhile or no?