chapter10 时间 1:真实时间:度量这一时间的起点有二:(1)某个标准点:(2)进程生命周期内的某个固定时点(通常为程序启动) 2:进程时间:一个进程所使用的CPU时间总量,适用于对程序,算法性能的检查或优化.10.1 日历时间(calendar Time) 日历时间存储于类型为time_t的变量中. 系统调用gettimeofday(),可于tv指向的缓冲区中返回日历时间 #include <sys/time.h> int gettimeofday(struct timeval *t…
chapter6 进程 重点关注进程虚拟内存的布局及内容.6.1 进程和程序 进程(process)是一个可执行程序(program)的实例. 程序是包含了一系列信息的文件,这些信息描述了如何在运行时创建一个进程,所包含的内容如下. (1):二进制格式标识:每个程序文件都包含用于描述可执行文件格式的元信息. (2):机器语言指令:对程序算法进行编码 (3):程序入口地址:标识程序开始执行时的起始指令位置. (4):数据:包含的变量初始值和程序使用的字面量值 (5):符号表以及重定位表:描述程序中…
Chapter4 文件IO 4.1 概述 文件描述符 == Windows的句柄 标准文件描述符: 0 标准输入 STDIN_FILENO stdin 1 标准输出 STDOUT_FILENO stdout 2 标准错误 STDERR_FILENO stderr (1):fd = open(pathname, flags, mode) (2):numread = read(fd, buffer, count) (3):numwritten = write(fd, buffer, count) (…
chapter9 进程凭证 每个进程都有一套用数字表示的用户ID(UID)和组ID(GID).有时也将这些ID称子为进程凭证. 1:实际用户ID和实际组ID 2:有效用户ID和有效组ID 3:保存的set-user-ID 和保存的set-group-ID 4:文件系统用户ID和文件系统组ID 5:辅助组ID9.1 实际用户ID和实际组ID 实际用户ID和实际组ID确定了进程所属的用户和组.作为登录过程的步骤之一,登录shell从/etc/passed文件中读取相应用户密码记录的第三字段和第四字段…
chapter8 用户和组 8.1 密码文件 /etc/passwd 每行都包含7个字段,之间用冒号分割,如下所示: mtk:x:1000:100:Michael:/home/mtk:/bin/base 按顺序介绍着7个字段: 登录名: 经过加密的密码:长度为13个字符 用户ID: 组ID: 注释:该字段存放关于用户的描述性文字. 主目录:用户登录后所处的初始路径 登录shell:一旦用于登录,便交由该程序控制 8.2 shadow密码文件: /etc/shadow 8.3 组文件:/etc/g…
Chapter7 内存分配本章将用于在堆或者栈上分配内存的函数.7.1 在堆上分配内存 通常将堆的当前的内存边界称为"program break" 7.1.1 调整program break: brk()和sbrk() 改变堆的大小(即分配或者释放内存),其实就像命令内核改变进程的program break位置一样简单. 传统的UNIX系统提供了两个操纵program break的系统调用:brk()和sbrk(). #include <unistd.h> int brk(…
Chapter5 深入探究文件I/O 本章节将介绍另一个与文件操作相关的系统调用:多用途的fcntl(),并展示其应用之一读取和设置打开文件的状态标志. 5.1 原子操作和竞争条件 所有系统调用都是以原子操作方式执行的.是以为内核保证了某系统调用中的所有步骤会作为独立操作而一次性加以执行,其间不会为其他进程或线程所中断. 以独占方式创建一个文件: 当同时制定O_EXCL与O_CREAT作为open()标志位时,如果要打开的文件已存在,则open()将返回一个错误.保证了进程是打开文件的创建者.…
Linux下操作系统编程有两本经典APUE即<Advanced Programming in the UNIX Environment>和TLPI<The Linux Programming Interface>,中文版对应<UNIX环境高级编程(第3版)>和<Linux/UNIX系统编程>. TLPI洋洋洒洒英文版1506页,中文版1176页:一共64章节,明显是作为工具书使用.通过目录可以了解本书的结构,以及作者的组织形式. 背景知识及概念:共3章分别介…
从系统时钟获取时间方式 time函数介绍: 1.函数名称: localtime 2.函数名称: asctime 3.函数名称: ctime 4.函数名称: difftime 5.函数名称: gmtime 6.函数名称: time 7.函数名称: tzset time.h是C/C++中的日期和时间头文件. 代码示例 # include <stdio.h> #include <time.h> int main(void) { time_t timer =time(NULL); prin…
1.大端法与小端法 大端法:按照从最高有效字节到最低有效字节的顺序存储,称为大端法 小端法:按照从最低有效字节到最高有效字节的顺序存储,称为小端法 网际协议使用大端字节序来传送TCP分节中的多字节整数(比如16位端口号,32位IPv4地址). 2.time_wait状态 客户端(执行主动关闭的那一端)连接在收到服务器的结束报文段(FIN, ACK),并没有直接进入CLOSED状态,而是转移到TIME_WAIT状态.在这个状态,客户端连接要等待一段长为2MSL(MSL: 报文段最大生存时间)的时间…