2017-01-08 5 views
1

illumos 커널을 결정하기 위해 ifdef에서 사용할 매크로에 대한 정보를 찾을 수 없습니다. 나는 리눅스를 잡기 위해 __linux를 사용한다.Illumos 커널 전처리 매크로

stackoverflow 문법 검사 필러 필러 필러 필러 필러.

답변

2

SmartOS 및 OpenIndiana와 같은 Illumos 기반 커널은 __sun을 사용하고 __sun__SVR4을 확인하려면 sometimes suggested입니다.

[[email protected] ~]# uname -a 
SunOS mysmartostestzone 5.11 joyent_20170202T033902Z i86pc i386 i86pc Solaris 

[[email protected] ~]# cat test.c 
#include <stdio.h> 

int 
main(int argc, char **argv) 
{ 
#ifdef sun 
printf("sun\n"); 
#endif 

#ifdef __sun 
printf("__sun\n"); 
#endif 

#if defined(__sun) && defined(__SVR4) 
printf("__sun && __SVR4\n"); 
#endif 
} 

[[email protected] ~]# cc test.c 

[[email protected] ~]# ./a.out 
sun 
__sun 
__sun && __SVR4