---
# System prepended metadata

title: UART_READ

---

```clike=
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <string.h>
#include <termios.h>


#define dev_uart "/dev/ttySAC3"
#define test "test.txt"


int main(int argc , char *argv[])
{
  int fh, cnt=0, fd;
  char bfr;
  struct termios original_t, new_t;
 
  printf("I/O test for UART driver \n");
  printf("Press Ctrl C to exit\n");
  fh = open(dev_uart, O_RDWR);
  fd = fileno(fopen(test, "w+"));

  tcgetattr(fh, &original_t);
  memcpy(&new_t, &original_t, sizeof(new_t));
  new_t.c_cflag &= (B9600 | CS8 | CREAD | CLOCAL);
  new_t.c_cflag &= ~(PARENB | CSTOPB);
  new_t.c_oflag = 0;
  new_t.c_lflag = 0;
  tcflush(fh,TCIFLUSH);

  tcsetattr(fh, TCSANOW, &new_t);


  while(1) {  
    cnt = read(fh, &bfr, 1);
	write(fd, &bfr, 1);
    if(cnt > 0) {
      printf("read %d characters: %c\n", cnt, bfr);
    }
  }
  
  /*
  while(1) {  
    cnt = write(fd, &bfr, 1);
    if(cnt > 0) {
      printf("read %d characters: %c\n", cnt, bfr);
    }
  }
  */
  close(fd);
  close(fh);
  
  tcsetattr(fh, TCSANOW, &original_t);
  return 0;
}

```