Прочитайте всего один байт с помощью функции read() из unistdLinux

Anonymous
Прочитайте всего один байт с помощью функции read() из unistd

Сообщение Anonymous »

Я пытаюсь запустить проект палача, и сначала хочу позаботиться о том, как получить письмо пользователя из терминала. Я знаю, что могу прочитать только один байт и сохранить это значение в адрес указателя с помощью

Код: Выделить всё

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 завершать буфер, даже если его содержимое состоит всего из одного символа, или мне вообще не стоит беспокоиться?

Вернуться в «Linux»