Ваш вопрос довольно непонятный. Что именно вы хотите сделать?
Почти во всех C строках функций строки "завершаются NUL". Это означает, что нет информации о длине строки, кроме байта "NUL" в конце.
И компилятор C автоматически добавляет байт NUL в конец строковых констант.
Пример: puts("Hello")
на самом деле означает: puts("Hello\0")
.
Итак, если вы хотите знать, как передать строку с завершающим NUL в функцию C: просто передайте строку в C функция; компилятор автоматически добавит NUL-байт.
Функция puts
не имеет возможности узнать «реальную» длину строки, если внутри строки есть символы «NUL»: puts("Hello\0 world")
- это То же, что и puts("Hello")
.
Итак, если вы хотите записать байт «NUL» на вывод, вы должны использовать функцию, которая не принимает строку с завершающим NUL. Вы можете использовать функцию write
или fwrite
.
Пример: используйте fwrite("Hello\0 world\n",1,13,stdout)
вместо puts("Hello\0 world")