Использование 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 ответ будет другим, то я хотел бы знать это и на будущее.

Ответы на вопрос(2)

Ваш ответ на вопрос