2013-05-01 4 views
-2

여기서 size_t 유형은 다음과 같이 정의되어 있습니다. 리눅스에서 모든 사용자 정의 유형 및 데이터 구조에 대한 참조가 있습니까? (gcc). 예를 sockaddr_in 리눅스 (gcc)를 통해 사용되는 모든 사용자 데이터 구조에 대한 참조가 있습니까

  • 에서 sockaddr_in6
  • mm_struct
  • 있는 pci_dev
  • sk_buff를
  • tq_struct

...

에 참조 가이드 0
+0

'','ptrdiff_t','max_align_t' ... 그리고'size_t'는 여기에서'unsigned int'가 아니고 대부분의 64 비트 시스템에서는 확실하지 않습니다. –

+4

@KingsIndian : 시스템의 모든 'stddef.h'파일을 검색합니다. 모두가 반드시 관련성이있는 것은 아닙니다. 특히 시스템이 NFS 파일 시스템을 마운트하는 경우에는 매우 오랜 시간이 걸릴 수도 있습니다. 그리고'stddef.h>'에 포함 된 다른 파일들은 해결하지 못할 것이다. 이것은 나를 위해 작동합니다 :'echo '#include '| gcc -E - | grep size_t' –

+0

@KeithThompson Nice. 그것은 gcc가 당신을 위해 seach를하도록하는 영리한 방법입니다 ;-) –

답변

2

확실한 기준이 표준입니다.

C 표준은 size_t 정의하고이 정의 말한다 <stddef.h> (GNU/리눅스에 해당 헤더는 GCC에서 제공) 및 POSIX는 <netinet/in.h>

<sys/types.h>

POSIX 표준이 정의를 포함하여 이후에 정의하는 데 필요

예 : size_t (일반적으로 부호없는 int 임), size> val; unsigned int val보다는 오히려.

unsigned int이 아니기 때문일 수 있습니다. 내 플랫폼에서는 unsigned long이므로 size_t을 작성하면 필요한 값 범위를 나타낼 수있는 유형이 보장됩니다. unsigned int을 사용한다고해서 이것이 보장되는 것은 아닙니다.

+0

최종 참조로 무슨 뜻인지 알 수 있습니다. – cc4re

+0

정확하게 "최종 참조"라는 단어가 의미하는 바를 정확히 의미합니다. C와 POSIX 표준은'size_t'와'sockaddr_in6' 타입의 의미를 ** 정의 **합니다. –

+0

아마도 당신이 찾고있는 것은 http://www.man7.org/tlpi/와 같습니다. –