JAVA 언어는 SUN(현재 ORACLE)에서 개발한 후, 버전 관리를 통합적으로 하고 있으르모, 표준 API에 대해 정리가 잘 되어있다. 최신 버전은 Java 8 버전이다. 이에 반해 C언어 및 C API는 유닉스/리눅스 플랫폼 간에 표준이 JAVA 언어에 비해 상대적으로 덜 정립된 느낌이다. C언어 표준 관련해서는 POSIX, ANSI/ISO 등이 있다.
C언어 표준인 POSIX와 ANSI/ISO에 대해 비교하고자 한다.
POSIX는 Portable Operating System Interface for UniX의 약어이다. POSIX는 다양한 UNIX와 LINUX를 위해 표준화된 API를 제공한다.
POSIX는 스레드(Thread), 세마포어(Semaphore), 파일 시스템 접근 API 등 많
은 API를 포함한다. 반면에 표준 C 라이브러리(ANSI/ISO 포함)는 적은 API를 제공한다. 스레드, IPC(Inter Process Communication) 등도 포함하지 않고 있다.
ANSI/ISO는 아래와 같은 24개 정도의 헤더파일을 포함하고 있을 뿐이다:
<assert.h>
<complex.h>
<ctype.h>
<errno.h>
<fenv.h>
<float.h>
<inttypes.h>
<iso646.h>
<limits.h>
<locale.h>
<math.h>
<setjmp.h>
<signal.h>
<stdarg.h>
<stdbool.h>
<stddef.h>
<stdint.h>
<stdio.h>
<stdlib.h>
<string.h>
<tgmath.h>
<time.h>
<whcar.h>
<wctype.h>
<aio.h>
<arpa/inet.h>
<assert.h>
<ctype.h>
<dirent.h>
<dlfcn.h>
<fcntl.h>
<fmtmsg.h>
<fnmatch.h>
<ftw.h>
<glob.h>
<grp.h>
<iconv.h>
<langinfo.h>
<libgen.h>
<monetary.h>
<mqueue.h>
<ndbm.h>
<net/if.h>
<netdb.h>
<netinet/in.h>
<netinet/tcp.h>
<nl_types.h>
<poll.h>
<pthread.h>
<pwd.h>
<regex.h>
<sched.h>
<search.h>
<semaphore.h>
<spawn.h>
<strings.h>
<stropts.h>
<sys/ipc.h>
<sys/mman.h>
<sys/msg.h>
<sys/resource.h>
<sys/select.h>
<sys/sem.h>
<sys/shm.h>
<sys/socket.h>
<sys/stat.h>
<sys/statvfs.h>
<sys/time.h>
<sys/times.h>
<sys/types.h>
<sys/uio.h>
<sys/un.h>
<sys/utsname.h>
<sys/wait.h>
<syslog.h>
<tar.h>
<termios.h>
<trace.h>
<ulimit.h>
<unistd.h>
<utime.h>
<utmpx.h>
<wordexp.h>
참고로, 아래 사이트에서 POSIX에서 정의한 함수 및 인자를 검색하여 확인할 수 있다.
http://pubs.opengroup.org/onlinepubs/9699919799/
'프로그래밍 언어 > C_C++' 카테고리의 다른 글
[예제] 매크로를 이용한 디버깅 예제 (0) | 2016.09.14 |
---|---|
[예제] 가변적인 인자 로깅하는 예제 - stdarg.h 함수 이용 (0) | 2016.09.14 |
[개요] C 표준 사전 정의된 매크로 (0) | 2016.06.17 |
[개요] gcc 컴파일러 옵션 (0) | 2016.06.08 |
[예제] IPC - Shared Memory 사용 예제 (0) | 2016.05.20 |