Serieller Port unter Linux

Gast #2559826
Lesenswert?

Hallo, beim Versuch einen seriellen Port mittels gcc unter Linux 
anzusprechen bekomme ich beim ausführen des Programms einen Fehler:
1
*** invalid open call: O_CREAT without mode ***: ./serial terminated

Was sagt mir dieser Fehler aus?

Schuld ist die Zeile
1
tcgetattr (port, &oldConfig)

definiert sind die Parameter als:
1
struct termios oldConfig;
2
FILE *port;

Bin bischen ratlos, irgendjemand ne Idee?

Grüße,
lugge
Gast #2559869
Lesenswert?

Peter II schrieb:
> und wo ist das open?

Beim Rest des Programms, was aber korrekt läuft ohne den tcgetattr() 
Aufruf.

Aber bitte:
1
# include <stdio.h>
2
# include <unistd.h>
3
# include <fcntl.h>
4
# include <termios.h>
5
#include <stdlib.h>
6
#include <string.h>
7

8
struct termios newConfig;
9
struct termios oldConfig;
10

11

12
void main(void) {
13

14
  FILE *port;
15

16
  port = open ("/dev/ttyUSB0", "rw");
17

18
  if (port != -1)
19
  {
20
    printf("Port geöffnet!\n");
21
  }
22
  else
23
  {
24
    printf("Port nicht gefunden!\n");
25
    return;
26
  }
27

28

29
  /*
30
   * saving the ports old config
31
   */
32
  if (tcgetattr (port, &oldConfig) == NULL)
33
  {
34
    printf("Port Config konnte nicht gesichert werden!\n");
35
    return;
36
  }
37
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren