I picked up a newer (as in still in production) instrument for my bench and had problems getting it to talk. After lots of teeth gnashing and resorting to Wireshark to dissect the USB I found that subtle changes on the GPIB bus were causing the Prologix controller to stop sending data. The kernel was also messing with CR & LF in the received data stream. Using termios functions solved the problem: all flow control, echo, and character translation is now disabled. Performance seems crisper with all of my instruments.
Most SCPI implementations use the semicolon to allow related commands to be sent together which is much more efficient. I've worked around this in the past but it is a hassle. This version recognizes an escaped semicolon (\;) in any of the fields but it is mostly intended for commands.
All of my development work is now done on Linux so I can't say for sure that it will compile without modification on Mac OS X or other Unix systems.