我们经常会看到”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.h bool类型
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>

ISO C 与POSIX 的关系相关推荐

  1. 【概念的辨异】—— ISO C 与 POSIX C(C standard library 与 C POSIX library)

    ISO C 表示 C Standard Library,也就是 C 标准库. 二者的主要区别在于: POSIX 是 C 标准库的超集(也即是从内容上,C 标准库是 POSIX 库的一部分,POSIX ...

  2. UNIX 标准化 --ISO C标准 IEEE POSIX 标准 Single Unix Specification(SUS)

    原文地址 为什么要进行标准化呢?  在早期,Unix应用程序虽然可以在不同版本的unix操作系统之间移植相当容易,但是随着Unix系统版本的剧增以及他们的差别越来越大,不同版本的unix系统的应用程序 ...

  3. glibc版本查看_Linux开发必知内容整理 | libc、glibc和glib的关系

    在进行Linux开发不可避免的要调用一些系统的API,我们经常开到的概念有诸如glibc.libc和glib等等.那么这些系统库之前的关系是什么样的呢?下面小编带大家了解一下这些库之前的共同点和差异, ...

  4. libc、glibc和glib的关系

    转自: http://my.oschina.net/moooofly/blog/126260 http://nieyong.github.io/wiki_ny/glibc,%20eglibc%E5%9 ...

  5. c标准基本库函数:libc、glibc的关系

    glibc 和 libc 都是 Linux 下的 C 函数库.  libc 是 Linux 下的 ANSI C 函数库:glibc 是 Linux 下的 GUN C 函数库. ANSI C 和 GNU ...

  6. Linux 文件IO管理 - POSIX

    以下是对POSIX的简短解释: POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操 ...

  7. 关于举办“ISO 15189 医学实验室认可内审员及医学实验室质量控制”以及“测量结果的计量溯源性要求”网络培训班的 通知...

    关于举办"ISO 15189 医学实验室认可内审员及医学实验室质量控制"."测量结果的计量溯源性要求"以及实验室生物安全网络培训班的通知 随着现代医学科技的发展 ...

  8. 安卓如何安装linux的iso文件系统,如何使用EasyBCD 2.0引导ISO文件安装系统

    EasyBCD是一个很强大的软件,通常情况下,我们用它来管理多系统的引导.比如用来引导windows ,linux,mac os组成的多系统.其实它的作用远不只这个(更多应用我以后再讲).下面我们来看 ...

  9. POSIX依从性测试技术及工具介绍

    什么是POSIX 在开始POSIX依从性测试技术介绍以前,我们必须了解什么是POSIX,POSIX是Portable Operating System Interface ofUnix的缩写.由IEE ...

最新文章

  1. java点滴(6)之java引用
  2. CentOS7.5 使用二进制程序部署Kubernetes1.12.2(三)
  3. C++类的构造函数 后单冒号加基类 例如:CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
  4. GPU下train 模型出现nan
  5. TechEd2009
  6. regexbuddy使用记录
  7. java怎么使用wcf_如何使用WCF服务
  8. 很喜欢VS.NET 2003对条件编译的代码提示
  9. Error:Comments are not permitted in JSON
  10. origin 截断y轴
  11. 多个excel工作簿合并_Excel应用实践14:合并多个工作簿中的数据—示例3
  12. 这6点解释了罗永浩为什么要卖艺
  13. Linux如何创建用户及设置权限
  14. 顺丰php下单,顺丰订单查询
  15. B.FRiEND MK7机械式电竞键盘-Cherry樱桃轴搭配纯净白光!
  16. Blender图解教程:手把手教你做马里奥问号箱 一 强迫症慎用版(附模型下载)
  17. Android APP如何简单快速实现控制硬件设备并实现APP签名
  18. 人脸识别——基于百度智能云实现
  19. 关于网络广告的的概念
  20. DS18B20测量温度液晶1602显示

热门文章

  1. Unity3D休闲射击类游戏《Survival Shooter》完整源码
  2. 计算机专业秃顶图片,大学被叫惨的三大专业,计算机秃顶是常事,医学专业这个就惨了...
  3. Scala特质trait
  4. 文件夹配额linux,Linux磁盘配额
  5. 联想IBM服务器X3650M3之硬盘扩容
  6. 利用Arcgis制作图像分割数据集
  7. 【情报百科】如何使用FOCA进行OSINT文档元数据分析?
  8. Python程序之DNS劫持
  9. 李子柒为什么可以火爆全球
  10. 基于知识图谱的知识泛化让AI学会“举一反三”