Я пытаюсь запустить проект палача, и сначала хочу позаботиться о том, как получить письмо пользователя из терминала. Я знаю, что могу прочитать только один байт и сохранить это значение в адрес указателя с помощью
Код: Выделить всё
char *ptr;
int read_bytes;
read_bytes = read(0, ptr, 1);
//NULL checks
но прямо сейчас я написал функцию, которая возвращает буфер с нулевым завершением всего с двумя символами (ввод пользователя и нулевой символ в конце).
Это код.
Код: Выделить всё
#include "utils.h"
char *read_one_byte(int fd)
{
char *buf;
int read_bytes;
if (!(buf = malloc(sizeof(char) * 2)))
return (NULL);
if ((read_bytes = read(fd, &buf, 1)))
{
buf[1] = '\0';
return (buf);
}
else
return (NULL);
}
Стоит ли NULL завершать буфер, даже если его содержимое состоит всего из одного символа, или мне вообще не стоит беспокоиться?