Why ssize_t? The length can't be < 0.