Я заметил, что несколько раз для проверки возвращаемого значения read()
использовался тип int
, но при проверке man я заметил, что read()
вместо этого возвращает значение типа ssize_t
. Я понял, что "вообще" int должен быть больше, чем ssize_t, и поэтому мы не ошибаемся. Но мой вопрос: Есть ли причина использовать int
вместо ssize_t
? Не лучше ли использовать ssize_t
?
Пример кода:
int x;
//ssiz_t x;
x = read(fd, &a, sizeof(a));
if (x == sizeof(a))
// all is fine
if (x == -1)
// Error while reading file
if (x == 0)
// Unexpected end of file
int
— это 3-символьный токен, аssize_t
— 7. - person StoryTeller - Unslander Monica   schedule 04.01.2017int
должен быть больше, чемssize_t
, нет, в общем случае это не так, по крайней мере, не в положительном смысле. - person alk   schedule 04.01.2017ssize_t
вместоint
? - person Robb1   schedule 04.01.2017s
вssize_t
означаетsigned
. Это размер, который может быть отрицательным. Специальные типы (такие какsize_t
иssize_t
и многие другие) содержат больше семантической информации. Объявив переменную какssize_t
, вы сообщаете читателю кода, какова цель этой переменной. - person Some programmer dude   schedule 04.01.2017