web-dev-qa-db-ja.com

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

OS:Debian 9(Linux 4.9)

コンパイラ:GCC 8.2

現在、<stddef.h>size_tが定義されている)と<stdint.h>(ほとんどの整数型が定義されている)を含めていますが、ssize_tはまだありません。

それはどこに定義されていますか?

6
Cacahuete Frito

https://stackoverflow.com/a/29984840/6872717 ):

粒度の細かいファイルでのPOSIXおよびCヘッダーの分割は、おそらくコンパイルに長い時間がかかる可能性があった昔からあり、不要なヘッダーファイルを追加すると時間が長くなります。

OSタイプのみが必要な場合は、関数のプロトタイプを例に挙げれば、#include <sys/types.h>だけです。ただし、関数定義が必要な場合は、必要に応じて#include <unistd.h>またはその他のシステムヘッダーを使用します。

多くのPOSIX関数の場合は#include <unistd.h>、タイプを含む小さなヘッダーの場合は#include <sys/types.h>のみ。

2
Cacahuete Frito