Is the behavior of writing a non-printing character undefined or implementation-defined, if the character is written via printf/fprintf? I am confused
The output of ASCII non-printable (control) characters is implementation defined.
Specifically, interpretation is the responsibility of the output device.
Edit 1:
When the output device is opened as a file, it can be opened as binary. When opened as binary the output is not translated (e.g. line endings).