APUE第二章 Unix标准及实现
来源:互联网 发布:淘宝页头背景图素材 编辑:程序博客网 时间:2024/04/30 00:14
Unix标准化
ISO C
ISO定义C语言的标准,提供C程序的可移植性,使其能适应于除UNIX以外的操作系统。此标准不仅定义了C语言的语法和语义,还定义了其标准库,也就是该标准定义了24个C语言的头文件,例如stdio.h, math.h, stdlib.h都包含在这24个头文件中。
IEEE POSIX
POSIX(Portable Operating System Interface)指的是可移植操作系统接口。POSIX.1包含了ISO C的标准库函数。POSIX没有包括超级用户的概念,代之以规定某些操作需要“适当的优先权”。
Unix系统实现
SVR4
AT&T的Unix系统实验室的产品。
BSD1
Berkeley Software Distribution是有加州大学伯克利分销研究开发和分发的。最初的BSD系统包含了AT&T专有的源代码。
Linux
Linux是一种提供类似于Unix的操作系统,在GNU公用许可证指导下,Linux是免费使用的。Linux常常是支持较新硬件的第一个操作系统。
Mac OS X
Mac OS X的核心操作系统为Darwin,Mac OS X 10.5的Intel部分已经被验证为是一个Unix系统。
Solaris
Solaris是由sun公司(现为Oracle)开发的Unix系统版本,它基于SVR4。
标准和实现的关系
在上述五种类Unix系统中,只有Mac OS和Solaris 10能够称自己是一种Unix系统,但是这五种系统都能提供Unix编程环境。因为这五种系统在不同程度上符合POSIX标准,所以我们将重点关注POSIX.1标准所要求的功能。
限制
必需限制
(1)编译时限制(如短整型最大值是什么)
(2)运行时限制(如文件名最大多少个字符)
编译时限制可在头文件中定义,而运行时限制则要通过进程调用一个函数获得限制值。
提供的限制
(1)编译时限制(头文件)
(2)与文件或目录无关的运行时限制(sysconf函数)
(3)与文件或目录有关的运行时限制(pathconf和fpathconf函数)
ISO C限制
ISO C定义的所有编译时限制都列在头文件
POSIX限制
与基本POSIX.1接口有关的限制和常量分成下列7类:
(1)数值限制:LONG_BIT、SSIZE_MAX和WORD_BIT。
(2)最小值:25个最小可接受值。例如登录名的长度_POSIX_LOGIN_NAME_MAX为9,描述了遵循POSIX.1系统最小可接受的登录名为9。
(3)最大值:_POSIX_CLOCKRES_MIN。
(4)运行时可以增加的值:CHARCLASS_NAME_MAX等。
(5)运行时不变值(不确定值):例如exec函数族的参数最大长度。
(6)其他不变值:NL_ARGMAX、NL_MSGMAX等。
(7)路径可变值
在这些限制和变量中,某些可能定义在
函数sysconf、pathconf和fpathconf
#include <unistd.h>long sysconf(int name);long pathconf(const char *pathname, int name);long fpathconf(int fd, int name);//fd为文件描述符
不确定的运行时限制
如果有些限制值没有在头文件
路径名
很多程序需要为路径名分配存储区,一般来说在编译时就要为路径名分配存储区,而且不同程序使用不同的幻数,如256、512或标准I/O常量BUFSIZ。
最大打开文件数
支持Single Unix Specification中XSI扩展的系统提供了getrlimit(2)函数,它返回一个进程可以同时打开的描述符的最多个数。使用该函数,我们能够检测出对于进程能够打开的文件数实际上并没有设置上限。
- APUE第二章 Unix标准及实现
- [APUE]第二章UNIX标准及实现
- 【APUE】2、第二章UNIX标准及实现
- APUE读书笔记-第二章 unix标准及实现
- apue学习第五天——UNIX标准及实现(第二章)
- APUE-第二章学习-UNIX标准化及实现-习题
- APUE3学习笔记-第二章-UNIX标准及实现
- APUE读书笔记(2.0) ——第二章 Unix 标准化及实现
- UNIX环境高级编程——第二章 UNIX标准及实现
- 第二章 UNIX标准及其实现
- 【qianlong88的APUE读书笔记】第二章:uinx标准化及实现
- 第2章 unix标准及实现
- 第2章 UNIX标准及实现
- 读书笔记-APUE第三版-(2)UNIX标准和实现
- 第二章 UNIX标准化及实现
- 2、UNIX标准及实现
- APUE学习笔记(02)-UNIX标准化及实现
- AUPE学习第二章------UNIX标准化及实现
- git初学
- aliyun阿里云Maven仓库地址——加速你的maven构建
- 关于The absolute uri: http://java.sun.com/jstl/core_rt cannot be resolved in either web.xml or the jar
- opencv人脸识别(c++)
- Zookeeper安装
- APUE第二章 Unix标准及实现
- bzoj 1064 假面舞会 图论??+dfs
- hibernate_核心配置和映射配置
- 码云使用
- Android 使用极光推送自定义消息推送效果
- 解决80端口被PID4占用问题
- Redis一些常用命令
- <android>头像上传,打开相册 —— 图片压缩——上传成功 (附三星手机适配图片旋转问题)
- 织梦教程:定时生成站点地图sitemap.xml(转+优化)