История изменений
Исправление vodz, (текущая версия) :
Я повторюсь, есть такая вещь как ssize_t.
Этот тип появился не от хорошей жизни. Он применяется для костыльного API read/write, так как 50 лет назад никто не задумывался, что 2 Gb файл это не так уж и много, потом согласились, что типа (4Gb - errno) это тоже нормальный такой предел. Короче, если б сразу был бы аргумент для ошибки у read/write, то типа ssize_t вообще бы не было. Для строк этот тип вообще не юзается.
оторая возвращает char * требует проверки на NULL.
NULL хорош прежде всего тем, что это недопустимое значение для использования. Потому можно передавать скажем во free(NULL) и так далее. В вашем же API придётся передавать два аргумента в более глубокие функции: prt и ssize_t, потом проверять на -1. Это - УРОДСТВО.
Исходная версия vodz, :
Я повторюсь, есть такая вещь как ssize_t.
Этот тип появился не от хорошей жизни. Он применяется для костыльного API read/write, так как 50 лет назад никто не задумывался, что 2 Gb файл это не так уж и много, потом согласились, что типа (4Gb - errno) это тоже нормальный такой предел. Короче, если б сразу был бы аргумент для ошибки у read/write, то типа ssize_t вообще бы не было. Для строк этот тип вообще не юзается.
оторая возвращает char * требует проверки на NULL.
NULL хорош прежде всего тем, что это недопустимое значение для использования. Потому можно передавать скажем во free(NULL) и так далее. В вашем же API придётся передавать два аргумента в более глубокие функции: prt и szie_t, потом проверять на -1. Это - УРОДСТВО.