UNIX环境高级编程(第三版)学习笔记(二、UNIX标准及实现)
来源:互联网 发布:皖西学院网络课程 编辑:程序博客网 时间:2024/06/06 00:57
1.UNIX标准化:
UNIX有很多标准,限制了各种东西,要不然大家一人做一个UNIX岂不是很乱?其中有几种标准:ISOC,IEEEPOSIX,SingleUNIX Specification,FIPS,具体这些实现清百度。
很多限制都在头文件limit.h中
2.UNIX具体实现:
其中几个重要的实现,分别是:SVR4,4.4BSD,FreeBSD,Linux,MacOS X,Solaris,还有很多UNIX操作系统,这些是很少的一部分,unix可不像windows,是很多种的。
3.函数sysconf,pathconf,fpathconf
某些限制在各种协议里面已经确定了,某些限制值在编译时是可用的,而另一些则必须在运行时确定,运行时限制可以调用这三个函数之一获得。
#include<unistd.h>
longsysconf(int name);
longpathconf(const char *pathname,int name);
logfpathconf(int fd,int name);
后面两个函数的区别是一个用文件路径作为参数,另一个则用文件描述符来作为参数。
在书的34-35页写了name参数的各种,欢迎大家查阅。
还有各种测试返回值的结果,在书的34-35页一种6条,比较统一的是如果参数错误或者返回值不确定那么返回值都是-1
4.功能测试宏
头文件定义了很多POSIX。1和XSI符号,但是除了这两种定义外,大多数是现在这些头文件中页加入了他们自己的定义,如果在编译一个程序的时候只希望它只同POSIX的定义相关,而不与任何实现定义的长两冲突,那么就需要定义常量_POSIX_C_SOURCE,一旦定义了_POSIX_C_SOURCE,所有POSIX.1头文件都使用此常量来排除任何实现专有的定义,就是就用POSIX定义了,别的咱不用了!
常量_POSIX_C_SOURCE和_XOPEN_SOURCE被称为功能测试宏,所有的功能测试宏都以下划线开始,当要使用他们的时候,通常在CC命令中用下列方式定义:
cc-D_POSIX_C_SOURCE=200809L file.c
也可以在C程序的第一行用
#define_POSIX_C_SOURCE200809L
SUS将c99实用程序定义为C编译环境的借口,随之,就可以用一下方式编译文件:
c99 -D_XOPEN_SOURCE=700 file.c -o file
推荐使用gcc实现1999ISO C扩展,如下所示:
gcc -D_XOPEN_SOURCE=700 -std=c99 file.c -o file
PS:说白了,功能测试宏就是在命令上做文章,来为你的程序定义仅有的标准。大家了解即可。
- UNIX环境高级编程(第三版)学习笔记(二、UNIX标准及实现)
- UNIX环境高级编程(第三版)学习笔记(三、文件I/O之二)
- UNIX环境高级编程(第三版)学习笔记(一、UNIX基础知识)
- 《UNIX环境高级编程》——UNIX标准及实现
- 《UNIX环境高级编程》---2 UNIX标准及实现
- 2.UNIX 环境高级编程--UNIX标准及实现
- Unix环境高级编程学习笔记(二) 文件IO
- UNIX环境高级编程(学习笔记)
- 《UNIX环境高级编程》笔记:第2章 UNIX标准及实现
- UNIX环境高级编程学习笔记(一)UNIX基础知识
- UNIX环境高级编程--标准I/O库(二)
- UNIX环境高级编程(第三版)学习笔记(三、文件I/O之一)
- 《UNIX环境高级编程》笔记--UNIX标准化及实现
- 《UNIX环境高级编程》笔记2--UNIX标准化及实现
- Unix环境高级编程学习笔记(九) 高级IO
- UNIX环境高级编程学习笔记(六)标准I/O库
- unix环境高级编程 学习笔记5 标准IO库
- Unix环境高级编程学习chapter1-Unix环境高级编程运行 第三版 环境搭建
- CentOS 7 下,如何设置DNS服务器
- 黑马程序员_集合
- UNIX网络编程卷1 时间获取程序客户端 UDP 协议无关
- C语言经典算法100例003
- 金融大数据创新
- UNIX环境高级编程(第三版)学习笔记(二、UNIX标准及实现)
- 黑马程序员 数据 变量 常亮
- 侬囻エ孩孒の苝亰暑徦:莱菿父毋裑笾卻鏛
- 戏骨加盟《谋圣鬼谷子》 倪大红房子斌剧中斗狠
- Avast激活密匙
- UNIX网络编程卷1 时间获取程序服务器 TCP 协议相关性
- 匿名对象 前几天课上的
- 跳槽指南 - 目录
- java 动态绑定 dynamic binding