\r
 static int CDC_Host_putchar(char c, FILE* Stream)\r
 {\r
-       CDC_Host_SendByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream), c);\r
-       return 0;\r
+       return CDC_Host_SendByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream), c) ? _FDEV_ERR : 0;\r
 }\r
 \r
 static int CDC_Host_getchar(FILE* Stream)\r
 {\r
        if (!(CDC_Host_BytesReceived((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream))))\r
-         return -1;\r
+         return _FDEV_EOF;\r
+\r
+       return CDC_Host_ReceiveByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream));\r
+}\r
+\r
+static int CDC_Host_getchar_Blocking(FILE* Stream)\r
+{\r
+       while (!(CDC_Host_BytesReceived((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream))))\r
+       {\r
+               CDC_Host_USBTask((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream));\r
+               USB_USBTask();\r
+       }\r
 \r
        return CDC_Host_ReceiveByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream));\r
 }\r