UNIX环境高级编程--2
UNIX标准及实现
ISO C:
国际标准化组织(International Organization for standardization , ISO)ISO C标准的意图是提供C程序的可移植性,使其能适合于大量不同的操作系统。此标准不仅定义C程序设计语言的语法和语义,还定义了其标准库。
IEEE POSIX:
POSIX(Protable open system interface 可移植性操作系统接口)是一个最初由IEEE(institute of Electricial and Electronics Engineers)美国电气和电子工程师协会制定的协议族。POSIX指的是可移植操作系统接口。后来发展成很多标记为1003的标准以及标准从草案,比如shell和应用程序。POSIX.1是标准。
四种UNIX系统:FreeBSD、Linux、Mac OS X 、Solaris这些类UNIX系统都是由POSIX(所包含的ISO C标准库)实现的。
Single UNIX Specification :
POSIX.1中的X/open系统接口(X/Open System Interface, XSI)选项描述了可选的接口,也定义了遵循XSI的实现必须支持POSIX.1的那些可选部分。这些必须支持的部分包括:文件同步、线程栈地址和长度属性、线程进程共享同步以及_XOPEN_UNIX符号常量。只有遵循XSI的实现才能称之为UNIX系统。
UNIX系统实现:
上面的3个由各自独立的组织所制定的标准: ISO C、 IEEE POSIX以及Single UNIX Specification。标准只是接口的规范。这些标准是如何与现实世界相关联的?这些标准由厂商采用,然后转变成具体实现。
UNIX系统家族树:
(1)AT&T分支(UNIX的商业版本)
(2)加州大学伯克利分校分支,由此引出4.xBSD实现
(3)由AT&T贝尔实验室的计算科学研究中心不断开发的UNIX研究版本。
BSD:
BSD(Berkeley Software Distribution)是由加州大学伯克利分校的计算机研究组在AT&T基础上研发的UNIX系统。
FreeBSD:
FreeBSD是基于4.4BSD-Lite的操作系统。免费。
Linux:
类UNIX系统。由Linus Torvalds在1991年为代替MINIX而研发的。
Mac OS X:
使用了完全不同的技术。核心操作系统成为“Darwin”,基于Mach内盒、FreeBSD操作系统以及具有面向对象框架的驱动和其他内核拓展的结合。
Solaris:
由Sun Microsystems(Oracle)开发的UNIX系统版本。
限制:
三种限制:
(1)编译时限制(头文件)
(2)与文件或目录无关的运行时限制(sysconf函数)
(2)与文件或目录有关的运行时限制(pathconf 和 fpathconf函数)
确定的运行时限制:函数sysconf、pathconf、fpathconf定义在<limit.h>头文件中
man一下sysconf:函数用来得到运行时配置信息,函数包含在<unistd.h> and <limit.h>头文件中。提供给运行是程序产看变量的取值,如未定义返回-1;
不确定的运行时限制:
路径名:动态分配存储路径名的空间
最大打开文件数:守护进程(daemon process,在后台运行且不与终端连接的一种进程)中一个常见的代码序列是关闭所有打开的文件。
选项:
每天学点Linux命令:
chown sakia hh.c 要修改文件hh.c的所有者.修改为sakia的这个用户所有
chmod 777 hh.c 把hh.c文件修改为可写可读可执行
UNIX环境高级编程--2的更多相关文章
- (十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- multiple definition of `err_sys' 《UNIX环境高级编程》
本文地址:http://www.cnblogs.com/yhLinux/p/4079930.html 问题描述: [点击此处直接看解决方案] 在练习<UNIX环境高级编程>APUE程序清单 ...
- unix环境高级编程基础知识之第二篇(3)
看了unix环境高级编程第三章,把代码也都自己敲了一遍,另主要讲解了一些IO函数,read/write/fseek/fcntl:这里主要是c函数,比较容易,看多了就熟悉了.对fcntl函数讲解比较到位 ...
- (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (六) 一起学 Unix 环境高级编程 (APUE) 之 进程控制
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (七) 一起学 Unix 环境高级编程(APUE) 之 进程关系 和 守护进程
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
随机推荐
- * average vector from multiple files--Matlab
n=359;a=[];b=[];c=[];% for loopfor i=1:n filename=sprintf('output_%d.dat',i); fileinfo = imp ...
- 使用Mybatis的逆向工程自动生成代码
1.逆向工程的作用 Mybatis 官方提供了逆向工程,可以针对数据库表自动生成Mybatis执行所需要的代码(包括mapper.xml.Mapper.java.pojo). 2.逆向工程的使用方法 ...
- Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建
Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...
- mysql 5.5与5.6 timestamp 字段 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP的区别
http://www.111cn.net/database/mysql/55392.htm 本文章来给各位同学介绍关于mysql 5.5与5.6 timestamp 字段 DEFAULT CURREN ...
- [luoguP1586] 四方定理(DP 背包)
传送门 相当于背包, f[i][j] 表示当前数为 i,能分解成 j 个数的平方的和的数量 那么就是统计背包装物品的数量 ——代码 #include <cmath> #include &l ...
- 消息传递(cogs 1001)
问题描述WZland开办了一个俱乐部(这里面可以干任何的事情),这引来了许多的人来加入.俱乐部的人数越来越多,关系也越来越复杂……俱乐部的人来自各个地方,为了增加友谊,俱乐部举行了一次晚会.晚会上又进 ...
- codevs2370 小机房的树
题目描述 Description 小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上.有一天,他们想爬到一个节点上去搞基,但是作为两只虫子, ...
- kendo Cannot read property 'call' of undefined
造成这个错误的原因是在 必须有id的定义
- Problem 2669
Romantic Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- Diagnose High-Latency I/O Operations Using SystemTap
Luca Canali on 28 Jul 2015 Topic: this post is about some simple tools and techniques that can be us ...