It appears that on a Mac, if one uses the POSIX termios to talk to the virtual com port it starts out with DTR high, and then permits you to set it low. This causes a reset of the Arduino main and USB processors.
It's been a long time since I used rs232 much but I do remember you could choose software control instead of hardware control by selecting XONXOFF instead of DTR.
It is normal for an Arduino to reset when a serial port is opened
Yes. To stop it, there are a couple of standard techniques:
there is a trace you can cut (and later re-connect, if needed) on most of the boards (see picture.)
You can temporarily connect a 10uF capacitor between the RESET and GND pins of the power connector.
Either of these will also defeat the auto-reset used for uploading new sketches, so you'll have to either manually push/release the reset button (timing this can be tricky; you have a one-second window, approximately), or undo the reset disable when you want to upload new code.