On 03/10/2018 11:52 AM, Georg-Johann Lay wrote: > avr-libc-...@nicohood.de schrieb: >> Hi, >> I am trying to use fwrite() to write the first X bytes of a string like >> this, but with a wrong output: >> >> auto ret = fwrite("Hello World!", 1, 5, stdout); >> printf("%d\n", ret); >> // Output: H0 >> >> Its documented here: >> https://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#gadd5777719a41713629a62b68c239a774 >> >> >> Can anyone please tell me if this is a bug or if I am doing something >> wrong. I am using avr-libc 2.0.0 on Arch Linux with the latest >> avr-gcc 7.3.0 >> >> ~Nico > > How did you setup stdout? Using FDEV_SETUP_STREAM? > https://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#gaea2b6be92ead4673bc487b271b7227fb > > > Are you sure the communication / output routines passed to stdout are > correct and I/O correctly set up? Including host I/O, given you use it. > > Johann >
This is how I use stdout: void usart_init_stream(FILE* const stream) { *stream = (FILE)FDEV_SETUP_STREAM(usart_fputc, usart_fgetc, _FDEV_SETUP_RW); } https://github.com/NicoHood/avr/blob/master/lib/USART/src/usart_init.c#L149 Every other print works fine. I can use printf with %d and %s without any errors. Only this single fwrite function does not work. You should be able to easily reproduce this i guess. You can use my usart example as a base if you dont have any stdio test sample handy. ~Nico _______________________________________________ AVR-libc-dev mailing list AVR-libc-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/avr-libc-dev