Я изо всех сил пытаюсь понять, что происходит во время snprintf
.Допустим, у меня есть два числа:
int i =11; int k = 3;
Я хочу отформатировать их как "[%02d] %03d\t"
и использовать snprintf
.После этого я использую полученную строку с write()
.
snprintf
нужна длина / байты n.Я не понимаю, какую длину мне нужно предоставить ... У меня есть 2 теории:
a) Это
sizeof(int)*2
b) Я проверяю, сколько символов будет отформатированной строкисодержать путем подсчета цифр двух целых чисел и добавления других символов, которые будут иметь выходные данные:
2*sizeof(char) + 1*sizeof(char) + 2*sizeof(char) + 3*sizeof(char)+ 1*sizeof(char)
-> цифры i + цифры k + нулей, добавленные к первому целому + нули, добавленные ко второму целому+ tab
Я изо всех сил пытаюсь понять, что "n" я должен дать snprintf