【发布时间】:2016-04-07 10:26:55
【问题描述】:
我正在编写一个涉及网络 I/O 的程序,所以使用了 send 和 recv,它们是 POSIX 函数。他们返回一个 ssize_t,这也是 POSIX 特定的。
包装器看起来像这样的 ATM:
ssize_t sock_send(int sock, const void* msg, size_t len) {
return send(sock, msg, len, 0);
}
尽管我在当前的实现中严重依赖 POSIX,但我想让界面紧贴标准,因为我计划稍后编写一个 Windows 实现,而 POSIX 不一定可用(该死,Windows !)。
按照 C11 标准的规定,什么是 ssize_t 的良好替代品?也许ptrdiff_t?
或者我应该如何处理这个问题?
【问题讨论】:
-
为什么不给
ssize_t的typedef 加上昵称? -
只使用 ssize_t。如果您在没有它的平台上,请定义它
-
见Using ssize_t vs int - 可能是骗局。