Бинарные данные - это набор байт.
Текстовые - это текст, то есть набор символов.
В текстовых данных не содержатся несимвольных байт. Есть еще юникод, но это другая песня.
Так что если тебе нужено работать с бинарными данными (картинки, тсполняемые файлы и прочее) то надо использовать binary-safe функции.
si
помоему там проблемы возникают не только с нулем.