Linuxシステム(32ビットまたは64ビット)で、pid_t
、uid_t
、およびgid_t
?
#include <stdio.h>
#include <sys/types.h>
int main()
{
printf("pid_t: %zu\n", sizeof(pid_t));
printf("uid_t: %zu\n", sizeof(uid_t));
printf("gid_t: %zu\n", sizeof(gid_t));
}
編集:人気のあるリクエストあたり.
Linux> = 3.0.0を実行しているi686およびx86_64(つまり、32ビットおよび64ビット)プロセッサーでは、答えは次のとおりです。
pid_t: 4
uid_t: 4
gid_t: 4
Intelアーキテクチャでは、サイズは_/usr/include/bits/typesizes.h
_で定義されます:
_#define __UID_T_TYPE __U32_TYPE
#define __GID_T_TYPE __U32_TYPE
#define __PID_T_TYPE __S32_TYPE
_
つまり、_uid_t
_と_gid_t
_は符号なし32ビット整数であり、_pid_t
_は符号付き32ビット整数です。これは、32ビットと64ビットの両方に適用されます。
現時点で利用可能なものがないため、他のアーキテクチャに何があるのかわかりませんが、決定的な方法はsizeof(uid_t)
などの出力を出力するプログラムをコンパイルすることです.
標準 は、pid_t
を「符号付き整数型」として定義し、uid_t
およびgid_t
を単に「整数型」として定義します(したがって、移植可能なコードは、特定のそれらのために入力してください)。