Neuerdings Probleme mit rs232

Hallo,
wenn ich bisher von einem c++ Programm aus auf die serielle Schnittstelle zugreifen wollte, habe ich es wie folgt getan:

#include
using namespace std;
int main(){
char empfangeneNachricht1[255];
char empfangeneNachricht2[255];
ofstream sender("/dev/ttyS0");
ifstream empfaenger("/dev/ttyS0");
sender > empfangeneNachricht1; //entweder so
empfaenger.getline(empfangeneNachricht2, 255); //oder auch so
return 0;}

Compiliert habe ich immer mit g++, der linux-Kernel war die Verson 4.20 und als Distribution wurde suse 8.1 verwendet. Der Zugriff auf die serielle Schnittstelle lief immer problemlos.
Seit neuestem gibt es aber Schwierigkeiten. Zwar lassen sich auf oben angegebene Weise Daten über rs232 versenden, aber das Empfanden funktioniert nicht mehr. Sobald aus ‚empfaenger‘ gelesen werden soll, geht das Programm in einen nicht enden wollenden Wartezustand über.

Ein Hardwareproblem scheint nicht vorzuliegen, denn wenn ich direkt von der Konsole aus auf die Schnittstelle zugreife, funktiioniert alles wie geschmiert:
$ echo „irgend ein zu sendender string“ >> /dev/ttyS0
bzw.
$ cat /dev/ttyS0
sendet bzw. empfängt Daten wie gewünscht.

Das Problem tritt auf, seit ich die Linux-Distribution suse9 installiert habe. Könnte es vielleicht sein, dass meine Art und Weise, mit einem g++ Programm auf die rs232-Schnittstelle zugreifen zu wollen, schon immer nicht ganz sauber war, es aber mit der alten suse-Distribution nur nicht aufgefallen war? Ich hatte nämlich schon öfters derartige Fehler, dass z.B. Programme bei älteren Compiler-Versonen liefen, neuere Compilerversionen hingegen nicht mehr ganz so tolerant waren.

Hat irgend jemand eine Idee, was ich anders machen könnte (alternativ zu ifstream bzw. ofstream)? Ich weiss echt nicht mehr weiter.

Viele Grüße
Jens