Ich bin etwas neugierig geworden: Warum möchtest Du das \r unterdrücken?
Normalerweise ist es sinnvoll, dass bei einer Bildschirmausgabe
(Unix/Linux: "tty") aus \n ein \r\n gemacht wird, damit der Cursor im
Terminal tatsächlich durch das \r (Carriage Return) zunächst an den
Anfang der Zeile geht und dann mit dem \n (Newline) eine Zeile tiefer
rutscht. Ohne dieses Mapping fängt nämlich jede neue Zeile eingerückt an
und der Output wandert immer weiter nach rechts.
Unter Unix kann man dieses Mapping durch diverse ioctls bzw.
termio-Calls manipulieren, um volle Kontrolle über die Bildschirmausgabe
zu bekommen und solche Mappings zu unterdrücken. Macht man aber
eigentlich nur, wenn man eine Full-Screen-Anwendung baut wie einen
Editor oder ein Menüsystem. In diesem Fall kann man dann auf curses
(Unix) bzw. ncurses (Linux) bzw. mcurses (µCs) zurückgreifen, die so
etwas verwalten.
Also: Was stört Dich an \r\n?