I'd think it would make more sense to have a daemon application that listened to the GPS and to which applications could connect over a socket. The daemon could send all immediate data to each application connected to it and respond to any directed queries. At its most basic level, it could essentially just multiplex the data to each connected socket, but that doesn't address multiple initializations, etc.

Regardless, the basic issue is multiplexing the data. It would seem to make sense not to recitify the data too soon. You also need some way to contend with multiple writers, especially when the write changes the GPS in some way, but even when querying for certain information and providing that data back to the correct client, and not to others.

(Note that I know fairly little about GPS, so some of my assumptions could be wrong.)
_________________________
Bitt Faulk