APUE(1)——UNIX基本概念
1、OS——操作系统是管理硬件资源的软件,也称作内核。与此同时,操作系统还为其他程序提供一系列的服务,比如执行程序、打开文件、读文件等等。
2、Kernel——内核对外提供一系列的系统调用,而一些库又把这些系统调用封装成更加容易使用的API。
3、Shell——shell是一个命令行解释器,通过读取用户在终端上输入的命令,或是脚本文件执行相应的命令。Linux中常见的shell为Bourne-again shell(Bash)。
4、File System——Unix的文件系统由目录和文件组成,而目录本身也为一个文件,其中有一系列的目录项,每个目录项由文件名标识,并带有文件的各种属性(所属用户,权限,修改时间等)。每一个目录在创建的时候便会自动创建两个文件:“.” (当前目录)和“..”上一级目录,这就是为什么“./”表示当前目录,而“cd..”表示退回上一级目录。
5、Pathname——路径分为两种:由“/”(“/”表示根目录)开始的绝对路径,和由当前目录开始的相对路径。
6、File Descriptors——文件标识符是一个非负整数,用来区分正在被访问的文件。当一个程序启动的时候会自动创建三个文件标识符,standard input,standard output,standard error 。当我们在终端上输入命令,如:“ls”,默认将这三个文件标识符绑定到终端。同时我们还可以将这三个文件标识符进行重定向。"ls > file.list"表示将standard output绑定到文件”file.list“上,”ls < file.list“则表示将standard input绑定到文件”file.list“上。
7、Error Handling——在系统调用的时候,当错误发生,函数通常会返回一个负数,并且将errno这个整数设定为某个特定的值(例如EACCES,表示权限错误),从这个值我们可以得到其错误的信息。以下为两个错误处理的基本函数:
char *strerror(int errnum); // 通入传入不同的errno,得到这个值所代表的错误信息
void perror(const char *msg); // 输出当前errno代表的错误信息,并以字符串“$msg: ”作为前缀。
8、Signal——signal是通知进程某个事件发生的机制(如SIGFPE:floating-point exception表示发生除以0的事件发生)。以下为两个关于信号的基本函数:
int kill(pid_t pid, int signo); // 将信号signo传递给进程pid
(*signal(int signo, void (*func)(int)))(int); // 将信号量signo与特定函数绑定,从而使得某个信号发生的时候,该函数被调用来处理这一信号。
9、Time Values——UNIX系统中记录着两种时间变量,time_t表示从标准世界时间(UTC)到现在的总秒数;clock_t描述CPU分配给各个进程的时间。
在终端下输入命令前加上“time”可以测量进程所用的时间。
$ time ./a.out real 0m0.81s
user 0m0.11s
sys 0m0.07s
其中“real”表示进程所使用的总时间(依赖于其它进程的数量),“user”表示进程分得的CPU总时间,“sys”表示内核代表进程运行的总时间。
通常把“user”和“sys”的和称作CPU时间。
APUE(1)——UNIX基本概念的更多相关文章
- 【转】apue《UNIX环境高级编程第三版》第一章答案详解
原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...
- UNIX基础概念
UNIX基本概念 进程 从用户观点来看:进程是程序的一个执行实例. 从UNIX系统内部来看,是为运行程序提供执行环境的实体,是系统进行资源分配和调度运行的一个单位. 进程有三个特点: 1)进程有一个控 ...
- 类UNIX操作系统概念
摘要:对unix os上的一些基本概念做一个统一的梳理,以下内容转自互联网和相关书籍 一 进程组.会话.控制终端 进程组---------------------------------------- ...
- APUE《UNIX 环境高级编程》读后感
今天终于把APUE前17章全部看完了,基本上主要知识就在这些章节里. 之前看完<unix/linux编程实践教程>时,有一种豁然开朗.心旷神怡的感觉,在代码级别了解了linux很多系统机制 ...
- 使用APUE(UNIX高级编程)源代码
方法一:1.APUE源代码下载:http://www.apuebook.com/code3e.html2.我保存到了/root下.解压缩:tar -xzvf src.tar.gz3.cd apue.2 ...
- APUE 1 -- Unix数据结构
Unix 类操作系统支持不同进程间共享文件.对于所有的I/O,内核使用3种数据结构来表示一个打开的文件. 进程表.每个进程在进程表中有其相应的入口.文件结构中,每个进程表的入口是文件描述符表,每个文件 ...
- Unix线程概念、控制原语、属性
线程: 线程基础概念: 线程在Linux中又称轻量级进程.而且它和进程都有PCB(进程控制块).可是差别是进程的虚拟地址空间是独享的,也就是每一个进程都有自己的虚拟地址空间.可是线程的PCB是共享的, ...
- linux/unix 基本概念的认识(sha-bang 、PPA)
PPA:Personal Package Archives : Ubuntu: 比如为安装 emacs,需要首先添加某个PPA: sudo add-apt-repository ppa:cassou/ ...
- 《Linux/Unix系统编程手册》 时间子系统
Linux下操作系统编程有两本经典APUE即<Advanced Programming in the UNIX Environment>和TLPI<The Linux Program ...
随机推荐
- 利用 Dolby® Digital Plus 提供优质音频体验
John Deutscher Azure媒体服务首席项目经理 随着媒体设备的增多,一项日益增长的需求是,视频流服务能够向用户提供超高音频质量和具有 5.1 环绕音响的优质内容.通过 Azure媒体 ...
- Charles抓Https的包
1: 手机上打开这个地址, 安装文件. http://www.charlesproxy.com/getssl 2:保证手机与电脑在同一个网段 3:按住alt再点击wifi, 显示出当前电脑的ip地址. ...
- 关于app transfer之后的开发
原文 http://blog.csdn.net/donghong2008/article/details/38020855 网络上有很多开发者提问怎么转让App并想知道具体的流程.实际上Appsto ...
- MVC3.0 中Razor 学习
随着MVC3.0RTM版本的发布,最近将公司的项目从MVC2.0升级到MVC3.0.同时打算在MVC3中全面使用Razor模板引擎.现将Razor学习拿出来和大家分享,如果存在不足的地方欢迎您指出. ...
- 在Eclipse中使用Github(EGit)
安装配置EGit 1. 安装Windows版的Git,登陆Github账号,登陆成功后会自动在本地和Github配置好密钥 2. 在Eclipse中安装EGit,地址http://download.e ...
- zzzz
using System; using System.Collections.Generic; using System.Diagnostics; using System.Management; u ...
- STL总结之functor
STL中仿函数是重要的组成部分.所谓的仿函数就是通过重载括号运算符实现的, 如下: STL库中都是泛型仿函数如小于操作: STL中定义了许多有用的操作,如less(小于), less_equal(小于 ...
- 使用页面对象模型(pageFactory)
页面对象模型可以使测试脚本有更高癿可维护性,减少了重复癿代码,把页面抽象出来. 页面对象设计模式提供了测试一个接口,测试可以像用户行为一样来操作页面. 通过隐藏页面元素定位,返有劣将测试代码和页面分离 ...
- Content-Type伪装 - 将jsp伪装成css
一.前期理论准备 1)目的: 在jsp中动态生成css语句,然后输出给浏览器解析.渲染. 2)浏览器解析文件的依据: 页面加载后,浏览器会发起各个请求去下载各种资源. 比如下载css文件,然后根 ...
- ab的排列 aa , ab ba,bb
package reverseList; public class Main { static void perm(char c[],int lev,char ans[]) { if(c.length ...