Linuxシステム(32ビットまたは64ビット)の場合、、、およびのサイズはどれくらいpid_t
ですuid_t
かgid_t
?
77199 次
3 に答える
68
#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));
}
編集:一般的なリクエストごとに(そして、現実的には、この質問に来る人の99%がx86またはx86_64を実行しているからです)...
Linux >= 3.0.0 を実行している i686 および x86_64 (つまり、32 ビットおよび 64 ビット) プロセッサでは、答えは次のとおりです。
pid_t: 4
uid_t: 4
gid_t: 4
于 2009-12-17T16:21:04.017 に答える
23
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 ビット整数であり、 は符号付き 32pid_t
ビット整数です。これは、32 ビットと 64 ビットの両方に適用されます。
現時点では利用できるものがないため、他のアーキテクチャでそれらが何であるかはわかりませんが、決定的な方法はsizeof(uid_t)
、などの出力を出力するプログラムをコンパイルすることです.
于 2009-12-17T16:02:44.897 に答える
15
標準pid_t
では、「符号付き整数型」として定義されておりuid_t
、単に「整数型」として定義されていますgid_t
(したがって、移植可能なコードは、特定の型を想定すべきではありません)。
于 2009-12-19T03:15:31.803 に答える