Когда строка имеет «длину строки» (что-либо больше 0, не считая нулевого терминатора) и последний символ перед нулевым терминатором является новой строкой, она войдет в условный блок и установит эту новую строку равнойнулевой терминатор.
Чтобы сообщить вам точное содержимое rbuf, мне нужно знать содержимое ini-файла.Но, например, если у вас была строка текста, например:
i love programming
И давайте предположим, что в конце есть неиспользованный символ новой строки, если он.
Тогда rbuf будет начинаться с:
`я люблю программировать \ n \ 0 '
То есть 20 байтов.Strlen вернет 19 (не включая нулевой терминатор в конце).
rbuf [strlen (rbuf) -1] будет символом \ n (с индексом 18 в буфере).
Таким образом, ваш код увидит, что символ новой строки находится в индексе 18, и установит его в '\ 0', так что вы получите:
i love programming\0\0
в вашем буфере.