Forum: PC-Programmierung termios.h unter MinGW


von Markus F. (5volt) Benutzerseite


Lesenswert?

Hallo,
ich habe gerade ein kleines Problem mit MinGW unter Windows:
Ich habe ein Programm, dass auf die serielle Schnittstelle zugreifen 
muss. Mit den in Windows üblichen Routinen(CreateFile, ReadFile, etc.) 
geht das auch ganz gut.

Um das Programm aber auch mal besser auf Linux portieren zu können, 
möchte ich lieber mit fopen, fwrite,... arbeiten.
Um damit aber die Schnittstellenparameter (z.B. Baudrate) konfigurieren 
zu können ist die Header-Datei termios.h erforderlich. Und die ist bei 
MinGW standardmäßig nicht dabei, und ich habe auch nirgends ein Paket 
gefunden, mit der man sie nachinstalliern kann.
Weiß vielleicht jemand von euch Rat?

Notfalls (wenn sich keine Lösung findet) könnte ich auch bei den 
Windows-spezifischen Routinen bleiben. Die fopen/fwrite,... wären mir 
aber lieber, weil der Code sich dann problemlos und ohne große 
#ifdef-Blöcke auch unter Linux kompilieren ließe.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

termios.h ist eine linuxspezifische Headerdatei, die Systemfunktionen 
deklariert, die es eben unter Linux gibt, aber nicht unter Windows.

Daher wird ein "Nachinstallieren" keinen Erfolg bringen, wie auch?

Du wirst nicht umhinkommen, die Schnittstellenbehandlung je nach 
Betriebssystem angepasst zu implementieren. Wenn das in einem Sourcefile 
stattfinden muss, dann wirst Du halt mit bedingter Compilation arbeiten 
müssen; #ifdef und Konsorten sind ja nun kein Hexenwerk.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ok, danke. Dann werde ich es wohl doch mit den ifdef-Blöcken machen. Ein 
Problem ist das auch nicht, aber mit den einheitlichen Funktionen 
fopen/fwrite/... wäre es eben schöner gewesen.
Egal, man kann auch nicht alles haben...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.