ISO C 与POSIX 的关系

我们经常会看到”ISO C “以及 “POSIX 接口”,那么究竟什么是ISO C,究竟什么POSIX,它们之间有什么联系与区别呢?

ISO C就是 International Organization for Standardization 国际标准化组织为了提高C语言的移植性而设立的C语言标准,里面包含两部分:C语法及语义;C标准函数库。其中只是定义了C标准函数库的函数原型、函数功能,而并未定义函数的具体实现
其中C标准函数库的头文件包括以下:

头文件说明
assert.h验证程序断言
complex.h复数运算
ctype.h字符分类与映射
errno.h出错码
fenv.h浮点环境
float.h浮点常亮以及特性
inttypes.h整形格式变换
iso646.h赋值、关系以及一元操作宏
limits.h编译时限制性常量
math.h数学函数
setjmp.h非局部跳转
signal.h信号
stdarg.h可变参数
stdbool.hbool类型
stddef.h标准定义
stdint.h整形
stdio.h标准输入输出
stdlib.h标准函数
string.h字符串相关函数
time.h时间和日期
wctype.h宽字符分类与映射
wchar.h扩充的多字节和宽字符支持

这个标准粗来以后有啥用处哇?主要是这样子的,时间上有很多厂商、公司都在开发自己的C编译器,可是每个厂商的实现都可能不一样哇,如果没有标准的限制 那么大家对标准库函数的定义就会千差万别,那么这样就很不利于C程序在源码级从一种编译器移植到另外一种编译器···

举个例子 张三在VS 2015中写了一段很牛逼的代码,他觉得自己的代码特别稳,他写这些代码调用了很多VS给他提供的现成函数接口 例如像printf呀。。。。然后张三把代码丢给李四,可是李四用的是什么borland公司的C编译器。。。如果没事ISO C标准,那么vs和borland就可以将用一个printf解释为不同含义···,例如VS认为printf应该是输出函数,而borland却认为这个是输出函数。

如果有两个编译器都声称他们遵循ISO C标准,那么凡是ISO C白字黑字规定了的,两个编译器都应该严格执行。

POSIX 是Portable Operating System Interfaces 的缩写,是由IEEE制定胡标准簇。这些标准的制定目的是为了提升应用程序在不同UNIX系统环境之间的可移植性。这个标准是ISO C的超集。 它不仅包含ISO C部分,还定义了很多系统服务接口,例如:socket相关接口,pthread线程相关接口等。同样的,POSIX也只是定义接口,而不定义具体的实现。
POSIX标准定义的头文件包括:

<aio.h>
<arpa/inet.h>
<assert.h>
<complex.h>
<cpio.h>
<ctype.h>
<dirent.h>
<dlfcn.h>
<errno.h>
<fcntl.h>
<fenv.h>
<float.h>
<fmtmsg.h>
<fnmatch.h>
<ftw.h>
<glob.h>
<grp.h>
<iconv.h>
<inttypes.h>
<iso646.h>
<langinfo.h>
<libgen.h>
<limits.h>
<locale.h>
<math.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>
<setjmp.h>
<signal.h>
<spawn.h>
<stdarg.h>
<stdbool.h>
<stddef.h>
<stdint.h>
<stdio.h>
<stdlib.h>
<string.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>
<tgmath.h>
<time.h>
<trace.h>
<ulimit.h>
<unistd.h>
<utime.h>
<utmpx.h>
<wchar.h>
<wctype.h>
<wordexp.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值