Использование ssize_t против int
Код
У меня есть функция, которую я могу написать водин из четырех возможных способов:
int do_or_die(int retval);
int do_or_die(ssize_t retval);
ssize_t do_or_die(int t retval);
ssize_t do_or_die(ssize_t retval);
И тогда это будет называться собе из этих способов для библиотечных функций:
written = do_or_die(write(...)); // POSIX write returns ssize_t
printed = do_or_die(printf(...)); // printf returns int
ВопросовКакой прототип я должен использовать?Какие типы я должен датьwritten
а такжеprinted
?Я хочу иметь самый надежный и стандартный код, но при этом иметь только одинdo_or_die
функция.
В этом случае я использую C99, но если для C11 ответ будет другим, то я хотел бы знать это и на будущее.