バージョン 5.9 以降、Linux のマニュアル ページにシステム データ型が記載されているため、この情報を一元的に簡単に見つけることができます。
man ssize_t
と入力するだけです :
ssize_t(3type) Linux Programmer’s Manual ssize_t(3type)
NAME
ssize_t - count of bytes or an error indication
LIBRARY
Standard C library (libc)
SYNOPSIS
#include <sys/types.h>
typedef /* ... */ ssize_t;
DESCRIPTION
Used for a count of bytes or an error indication. Ac‐
cording to POSIX, it shall be a signed integer type capa‐
ble of storing values at least in the range [-1,
SSIZE_MAX], and the implementation shall support one or
more programming environments where the width of ssize_t
is no greater than the width of the type long.
Glibc and most other implementations provide a length
modifier for ssize_t for the printf(3) and the scanf(3)
families of functions, which is z; resulting commonly in
%zd or %zi for printing ssize_t values. Although z works
for ssize_t on most implementations, portable POSIX pro‐
grams should avoid using it—for example, by converting
the value to intmax_t and using its length modifier (j).
VERSIONS
<aio.h>, <mqueue.h>, and <sys/socket.h> define ssize_t
since POSIX.1‐2008.
CONFORMING TO
POSIX.1‐2001 and later.
NOTES
The following headers also provide this type: <aio.h>,
<monetary.h>, <mqueue.h>, <stdio.h>, <sys/msg.h>,
<sys/socket.h>, <sys/uio.h>, and <unistd.h>.
SEE ALSO
read(2), readlink(2), readv(2), recv(2), send(2),
write(2), ptrdiff_t(3type), size_t(3type)
Linux 2022‐06‐17 ssize_t(3type)
ssize_t
のみが必要な場合 、 <sys/types.h>
を含める必要があります 、これは標準的なヘッダーであり、おそらく ssize_t
を提供する最も軽いものです .ただし、文書化されているヘッダーのいずれかによって提供されるため、これらの他のヘッダーのいずれかに定義が必要な場合は、その他のヘッダーのみを含めることができます。
ssize_t
sys/types.h
で定義されています .
POSIX ドキュメントによると:
<ブロック引用>名前
sys/types.h - データ型
あらすじ
#include <sys/types.h>
説明
ヘッダーは、少なくとも次のタイプを定義する必要があります:
...
ssize_t
バイト数またはエラー表示に使用されます。