9 struct termios orgstate
;
10 struct termios workstate
;
12 #define PORT_FILE "/dev/ttyS0"
13 #define BUFFER_SIZE 1000000
16 int sp
, ep
, count
, portfd
;
18 void sighandler(int sig
){
22 // fprintf(stderr,"%i %i\n", sp, ep);
24 while(buffer
[sp
]==0) sp
++;
25 while(buffer
[ep
]==0) ep
--;
28 write(1,buffer
+sp
,ep
-sp
+1);
30 fprintf(stderr
,"Eingelesen: %i\n",ep
-sp
+1);
31 tcsetattr(portfd
, TCSANOW
, &orgstate
);
36 int main (int argc
, char ** argv
){
38 portfd
=open(PORT_FILE
, O_RDWR
);
39 tcgetattr(portfd
, &orgstate
);
40 tcgetattr(portfd
, &workstate
);
41 cfmakeraw(&workstate
);
42 // workstate.c_oflag=0;
43 workstate
.c_cflag
|=CS8
+CREAD
+CLOCAL
+CRTSCTS
+CSTOPB
;
44 // workstate.c_lflag=0;
45 cfsetspeed(&workstate
, B4800
);
46 tcsetattr(portfd
, TCSANOW
, &workstate
);
49 signal(SIGINT
, sighandler
);
50 buffer
=(char *) malloc(BUFFER_SIZE
);
51 fprintf(stderr
, "Warte auf Daten. Einspielen und dann CTRL-C drücken.\n");
54 int erg
=read(portfd
, buffer
+count
, 1);
55 if (erg
>0) count
+=erg
;