GNU/Linux >> Linux の 問題 >  >> Linux

Linux で ssize_t はどこで定義されていますか?

バージョン 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

バイト数またはエラー表示に使用されます。


Linux
  1. カスタム Linux GUI:どこから始めますか?

  2. Linux は syslog をどこに保存しますか?

  3. Linux のどこにアプリをインストールすればよいですか?

  1. Linuxのシステム管理者は知りたがっています:私のディスクスペースはどこに行きましたか?

  2. Linux:スワップ ファイルを配置する場所

  3. ifconfig (Linux の場合) の非推奨宣言はどこにありますか?

  1. Linux –名前付きセマフォはどこに保存されますか?

  2. Kali Linux 1.0.5 とソフトウェア無線

  3. Linux の itoa 関数はどこにありますか?