The answer is in the part you neglected to read.
NULL can be passed to function only "escaped" \0 \x00but $'\x00' is not like "\x00", because the first is expanded "before", and the second is expanded "after"
$ printf $'\x00' +-+-+-+-+-+-+--+ +--+--+ |p|r|i|n|t|f|\0| |\0|\0| +-+-+-+-+-+-+--+ +--+--+ $ printf "\0" +-+-+-+-+-+-+--+ +--+-+--+ |p|r|i|n|t|f|\0| |\\|0|\0| +-+-+-+-+-+-+--+ +--+-+--+ right? if so, thanks a lot!