The Thinking in Java Annotated Solution Guide(TIJ4-solutions) 第四版
Thinking in Java第四版的课后习题解答官方PDF文件 Thinking in Java第四版的课后习题解答官方PDF文件Thinking in Java第四版的课后习题解答官方PDF文件 Thinking in Java第四版的课后习题解答官方PDF文件Thinking in Java第四版的课后习题解答官方PDF文件 Thinking in Java第四版的课后习题解答官方PDF文件
《算法与数据结构》实验指导书
《算法与数据结构》实验指导书........................................................................................................................... 1
0 绪 论........................................................................................................................................................... 5
实验一:线性表的存储结构定义及基本操作(必做:基本 2 学时,扩展 4 学时)........................................ 6
一、实验目的:............................................................................................................................................... 6
二、实验内容:............................................................................................................................................... 6
(一)基本实验内容(顺序表):......................................................................................................... 6
(二)基本实验内容(链表):.............................................................................................................. 7
(三)扩展实验内容(顺序表)........................................................................................................... 8
(四)扩展实验内容(链表)............................................................................................................... 9
三、实验指导................................................................................................................................................... 9
四、基本实验的参考程序............................................................................................................................. 11
五、实验环境和实验步骤............................................................................................................................. 24
六、思考题..................................................................................................................................................... 25
实验二:线性表的综合应用(选做: 2学时)................................................................................................. 27
一、实验目的:............................................................................................................................................. 27
二、实验内容: ................................................................................................................................................ 27
三、编程指导................................................................................................................................................. 28
四、参考程序................................................................................................................................................. 28
五、实验步骤................................................................................................................................................. 30
六、思考题:................................................................................................................................................. 30
实验三:栈和队列的定义及基本操作(必做: 2学时)................................................................................. 32
一、实验目的:............................................................................................................................................. 32
二、实验内容: ................................................................................................................................................ 32
三、实验指导................................................................................................................................................. 34
(一)顺序栈的实验指导..................................................................................................................... 34
(二)链式队列的实验指导................................................................................................................. 34
四、参考程序................................................................................................................................................. 34
(一)顺序栈......................................................................................................................................... 34
(二)链式队列..................................................................................................................................... 39
五、实验环境和实验步骤............................................................................................................................. 44
(一)基本实验的实验步骤:(顺序栈的定义以及应用) ................................................................... 44
(二)基本实验的实验步骤:(链式队列定义以及应用) ................................................................... 45
六、思考题..................................................................................................................................................... 45
实验四:栈和队列的综合应用(选做: 2 学时)............................................................................................. 47
一、实验目的:............................................................................................................................................. 47
二、实验内容: ................................................................................................................................................ 47
(一)基本实验内容:......................................................................................................................... 47
三、参考程序................................................................................................................................................. 47
(一)实现 Hanoi塔问题(只需建立如下的一个文件hanoi.cpp即可).............................................. 47
(二)迷宫问题参考程序(只需建立如下的一个文件maze.cpp 即可) .............................................. 48
四、实验环境和实验步骤............................................................................................................................. 51
实验五:二叉树的定义及基本操作 (必做:基本2学时,扩展 4 学时).................................................... 53《算法与数据结构》实验指导书
3
一、实验目的:............................................................................................................................................. 53
二、实验内容: ................................................................................................................................................ 53
(一)基本实验内容:......................................................................................................................... 53
(二)扩展实验内容:......................................................................................................................... 54
三、实验指导................................................................................................................................................. 55
(一)基本实验指导............................................................................................................................. 55
(二)扩展实验指导............................................................................................................................. 56
四、参考程序................................................................................................................................................. 57
(一)基本实验的参考程序................................................................................................................. 57
(二)扩展实验的参考程序................................................................................................................. 63
(三)线索二叉树的参考程序............................................................................................................. 66
五、实验环境和实验步骤............................................................................................................................. 71
(一)基本实验的实验步骤:............................................................................................................. 71
(二)二叉链表扩展实验的实验步骤:.............................................................................................. 71
(三)线索二叉树的实验步骤: ............................................................................................................ 71
六、思考题..................................................................................................................................................... 72
实验六:赫夫曼编码及其应用(选做:基本 2学时,扩展 2 学时).............................................................. 73
一、实验目的:............................................................................................................................................. 73
二、实验内容: ................................................................................................................................................ 73
(一)基本实验内容............................................................................................................................. 73
(二)扩展实验内容:......................................................................................................................... 74
三、实验指导................................................................................................................................................. 74
(一)基本实验指导............................................................................................................................. 74
四、参考程序................................................................................................................................................. 74
(一)基本实验的参考程序................................................................................................................. 74
五、实验环境和实验步骤............................................................................................................................. 77
六、思考题..................................................................................................................................................... 78
实验七:图及其应用(选做: 2 学时)............................................................................................................ 79
一、实验目的:............................................................................................................................................. 79
二、实验内容: ................................................................................................................................................ 79
三、实验指导: ................................................................................................................................................ 80
四、参考程序: ................................................................................................................................................ 80
五、实验环境和实验步骤............................................................................................................................. 89
六、思考题..................................................................................................................................................... 90
实验八:最短路径和关键路径的研究与实现(选做:2 学时)....................................................................... 91
一、实验目的:............................................................................................................................................. 91
二、实验内容: ................................................................................................................................................ 91
三、实验指导: ................................................................................................................................................ 91
四、参考程序: ................................................................................................................................................ 92
五、实验环境和实验步骤............................................................................................................................. 99
六、思考题..................................................................................................................................................... 99
实验九:查找和排序算法的实现 (选做:基本 2学时,扩展 4 学时).................................................... 101
一、实验目的............................................................................................................................................... 101
二、实验内容............................................................................................................................................... 101
(一) 基本实验内容:........................................................................................................................... 101
(二)扩展实验内容:....................................................................................................................... 102《算法与数据结构》实验指导书
4
三、实验指导............................................................................................................................................... 103
四、参考程序............................................................................................................................................... 103
(一) 基本实验的参考程序............................................................................................................. 103
(二) 扩展实验的参考程序............................................................................................................. 112
五、实验环境和实验步骤........................................................................................................................... 118
六、思考题................................................................................................................................................... 119
计算机网络第五版谢希仁习题答案
第一章 概述
1-01 计算机网络向用户可以提供那些服务?
答: 连通性和共享
1-02 简述分组交换的要点。
答:(1)报文分组,加首部
(2)经路由器储存转发
(3)在目的地合并
1-03 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。
答:(1)电路交换:端对端通信质量因约定了通信资源获得可靠保障,对连续传
送大量数据效率高。
(2)报文交换:无须预约传输带宽,动态逐段利用传输带宽对突发式数据通信效率高
,通信迅速。
(3)分组交换:具有报文交换之高效、迅速的要点,且各分组小,路由灵活,网络生
存性能好。
1-04 为什么说因特网是自印刷术以来人类通信方面最大的变革?
答: 融合其他通信网络,在信息化过程中起核心作用,提供最好的连通性和信息共享
,第一次提供了各种媒体形式的实时交互能力。
1-05 因特网的发展大致分为哪几个阶段?请指出这几个阶段的主要特点。
答:从单个网络APPANET向互联网发展;TCP/IP协议的初步成型
建成三级结构的Internet;分为主干网、地区网和校园网;
形成多层次ISP结构的Internet;ISP首次出现。
1-06 简述因特网标准制定的几个阶段?
答:(1)因特网草案(Internet Draft) ——在这个阶段还不是 RFC 文档。
(2)建议标准(Proposed Standard) ——从这个阶段开始就成为 RFC 文档。
(3)草案标准(Draft Standard)
(4) 因特网标准(Internet Standard)
1-07小写和大写开头的英文名字 internet 和Internet在意思上有何重要区别?
答:(1) internet(互联网或互连网):通用名词,它泛指由多个计算机网络
互连而成的网络。;协议无特指
(2)Internet(因特网):专用名词,特指采用 TCP/IP 协议的互联网络
区别:后者实际上是前者的双向应用
1-08 计算机网络都有哪些类别?各种类别的网络都有哪些特点?
谢希仁版《计算机网络》第五版课后习题答案
谢希仁版《计算机网络》第五版课后习题答案谢希仁版《计算机网络》第五版课后习题答案谢希仁版《计算机网络》第五版课后习题答案谢希仁版《计算机网络》第五版课后习题答案谢希仁版《计算机网络》第五版课后习题答案
JAWIN(Java调用Win API)
Java调用Win API:SUN官方提供的JNI调用时还要自己生成头文件,对已有的DLL再次进行封装。需要对C++非常熟悉,因为要写C++代码。不过还好还有另一种解决方案——Jawin
ACM培训资料和经典题解
ACM培训资料和经典题解
ACM培训资料和经典题解
ACM培训资料和经典题解
ACM常用模板总结ACM常用模板总结
几何\
多边形
多边形切割
浮点函数
几何公式
面积
球面
三角形
三维几何
凸包(graham)
网格(pick)
圆
整数函数
注意
结构\
并查集
并查集扩展(friend_enemy)
堆(binary)
堆(mapped)
矩形切割
线段树
线段树扩展
线段树应用
子段和
子阵和
其他\
大数(整数类封装)
分数
矩阵
线性方程组(gauss)
日期
线性相关
数论\
阶乘最后非零位
模线性方程(组)
质数表
质数随机判定(miller_rabin)
质因数分解
最大公约数欧拉函数
数值计算\
定积分计算(Romberg)
多项式求根(牛顿法)
周期性方程(追赶法)
图论_NP搜索\
最大团(n小于64)
最大团
图论_连通性\
无向图关键边(dfs邻接阵形式)
无向图关键点(dfs邻接阵形式)
无向图块(bfs邻接阵形式)
无向图连通分支(bfs邻接阵形式)
无向图连通分支(dfs邻接阵形式)
有向图强连通分支(bfs邻接阵形式)
有向图强连通分支(dfs邻接阵形式)
有向图最小点基(邻接阵形式)
图论_匹配\
二分图最大匹配(hungary邻接表形式)
二分图最大匹配(hungary邻接阵形式)
二分图最大匹配(hungary邻接表形式,邻接阵接口)
二分图最大匹配(hungary正向表形式)
二分图最佳匹配(kuhn_munkras邻接阵形式)
一般图最大匹配(邻接表形式)
一般图最大匹配(邻接阵形式)
一般图最大匹配(正向表形式)
一般图匹配(邻接表形式,邻接阵接口)
图论_网络流\
上下界最大流(邻接阵形式)
上下界最小流(邻接阵形式)
上下界最大流(邻接表形式)
上下界最小流(邻接表形式)
最大流(邻接阵形式)
最大流(邻接表形式)
最大流(邻接表形式,邻接阵接口)
最大流无流量(邻接阵形式)
最小费用最大流(邻接阵形式)
图论_应用\
欧拉回路(邻接阵形式)
前序表转化
树的优化算法
拓扑排序(邻接阵形式)
最佳边割集
最佳顶点割集
最小边割集
最小顶点割集
最小路径覆盖
图论_最短路径\
最短路径(单源bellman_ford邻接阵形式)
最短路径(单源dijkstra邻接阵形式)
最短路径(单源dijkstra_bfs邻接表形式)
最短路径(单源dijkstra_bfs正向表形式)
最短路径(单源dijkstra+binary_heap邻接表形式)
最短路径(单源dijkstra+binary_heap正向表形式)
最短路径(单源dijkstra+mapped_heap邻接表形式)
最短路径(单源dijkstra+mapped_heap正向表形式)
最短路径(多源floyd_warshall邻接阵形式)
图论_支撑树\
最小生成树(kruskal邻接表形式)
最小生成树(kruskal正向表形式)
最小生成树(prim邻接阵形式)
最小生成树(prim+binary_heap邻接表形式)
最小生成树(prim+binary_heap正向表形式)
最小生成树(prim+mapped_heap邻接表形式)
最小生成树(prim+mapped_heap正向表形式)
最小树形图(邻接阵形式)
应用\
joseph模拟
N皇后构造解
布尔母函数
第k元素
幻方构造
模式匹配(kmp)
逆序对数
字符串最小表示
最长公共单调子序列
最长子序列
最大子串匹配
最大子段和
最大子阵和
组合\
排列组合生成
生成gray码
置换(polya)
字典序全排列
字典序组合
组合公式
linux - 0.11 源码 带中文注释
/*
* linux/init/main.c
*
* (C) 1991 Linus Torvalds
*/
#define __LIBRARY__ // 定义该变量是为了包括定义在unistd.h 中的内嵌汇编代码等信息。
#include <unistd.h> // *.h 头文件所在的默认目录是include/,则在代码中就不用明确指明位置。
// 如果不是UNIX 的标准头文件,则需要指明所在的目录,并用双引号括住。
// 标准符号常数与类型文件。定义了各种符号常数和类型,并申明了各种函数。
// 如果定义了__LIBRARY__,则还包括系统调用号和内嵌汇编代码_syscall0()等。
#include <time.h> // 时间类型头文件。其中最主要定义了tm 结构和一些有关时间的函数原形。
/*
* we need this inline - forking from kernel space will result
* in NO COPY ON WRITE (!!!), until an execve is executed. This
* is no problem, but for the stack. This is handled by not letting
* main() use the stack at all after fork(). Thus, no function
* calls - which means inline code for fork too, as otherwise we
* would use the stack upon exit from 'fork()'.
*
* Actually only pause and fork are needed inline, so that there
* won't be any messing with the stack from main(), but we define
* some others too.
*/
/*
* 我们需要下面这些内嵌语句 - 从内核空间创建进程(forking)将导致没有写时复制(COPY ON WRITE)!!!
* 直到一个执行execve 调用。这对堆栈可能带来问题。处理的方法是在fork()调用之后不让main()使用
* 任何堆栈。因此就不能有函数调用 - 这意味着fork 也要使用内嵌的代码,否则我们在从fork()退出
* 时就要使用堆栈了。
* 实际上只有pause 和fork 需要使用内嵌方式,以保证从main()中不会弄乱堆栈,但是我们同时还
* 定义了其它一些函数。
*/
static inline
_syscall0 (int, fork) // 是unistd.h 中的内嵌宏代码。以嵌入汇编的形式调用
// Linux 的系统调用中断0x80。该中断是所有系统调用的
// 入口。该条语句实际上是int fork()创建进程系统调用。
// syscall0 名称中最后的0 表示无参数,1 表示1 个参数。
static inline _syscall0 (int, pause) // int pause()系统调用:暂停进程的执行,直到
// 收到一个信号。
static inline _syscall1 (int, setup, void *, BIOS) // int setup(void * BIOS)系统调用,仅用于
// linux 初始化(仅在这个程序中被调用)。
static inline _syscall0 (int, sync) // int sync()系统调用:更新文件系统。
#include <linux/tty.h> // tty 头文件,定义了有关tty_io,串行通信方面的参数、常数。
#include <linux/sched.h> // 调度程序头文件,定义了任务结构task_struct、第1 个初始任务
// 的数据。还有一些以宏的形式定义的有关描述符参数设置和获取的
// 嵌入式汇编函数程序。
#include <linux/head.h> // head 头文件,定义了段描述符的简单结构,和几个选择符常量。
#include <asm/system.h> // 系统头文件。以宏的形式定义了许多有关设置或修改
// 描述符/中断门等的嵌入式汇编子程序。
#include <asm/io.h> // io 头文件。以宏的嵌入汇编程序形式定义对io 端口操作的函数。
#include <stddef.h> // 标准定义头文件。定义了NULL, offsetof(TYPE, MEMBER)。
#include <stdarg.h> // 标准参数头文件。以宏的形式定义变量参数列表。主要说明了-个
// 类型(va_list)和三个宏(va_start, va_arg 和va_end),vsprintf、
// vprintf、vfprintf。
#include <unistd.h>
#include <fcntl.h> // 文件控制头文件。用于文件及其描述符的操作控制常数符号的定义。
#include <sys/types.h> // 类型头文件。定义了基本的系统数据类型。
#include <linux/fs.h> // 文件系统头文件。定义文件表结构(file,buffer_head,m_inode 等)。
static char printbuf[1024]; // 静态字符串数组。
extern int vsprintf (); // 送格式化输出到一字符串中(在kernel/vsprintf.c,92 行)。
extern void init (void); // 函数原形,初始化(在168 行)。
extern void blk_dev_init (void); // 块设备初始化子程序(kernel/blk_drv/ll_rw_blk.c,157 行)
extern void chr_dev_init (void); // 字符设备初始化(kernel/chr_drv/tty_io.c, 347 行)
extern void hd_init (void); // 硬盘初始化程序(kernel/blk_drv/hd.c, 343 行)
extern void floppy_init (void); // 软驱初始化程序(kernel/blk_drv/floppy.c, 457 行)
extern void mem_init (long start, long end); // 内存管理初始化(mm/memory.c, 399 行)
extern long rd_init (long mem_start, int length); //虚拟盘初始化(kernel/blk_drv/ramdisk.c,52)
extern long kernel_mktime (struct tm *tm); // 建立内核时间(秒)。
extern long startup_time; // 内核启动时间(开机时间)(秒)。
/*
* This is set up by the setup-routine at boot-time
*/
/*
* 以下这些数据是由setup.s 程序在引导时间设置的(参见第2 章2.3.1 节中的表2.1)。
*/
#define EXT_MEM_K (*(unsigned short *)0x90002) // 1M 以后的扩展内存大小(KB)。
#define DRIVE_INFO (*(struct drive_info *)0x90080) // 硬盘参数表基址。
#define ORIG_ROOT_DEV (*(unsigned short *)0x901FC) // 根文件系统所在设备号。
/*
* Yeah, yeah, it's ugly, but I cannot find how to do this correctly
* and this seems to work. I anybody has more info on the real-time
* clock I'd be interested. Most of this was trial and error, and some
* bios-listing reading. Urghh.
*/
/*
* 是啊,是啊,下面这段程序很差劲,但我不知道如何正确地实现,而且好象它还能运行。如果有
* 关于实时时钟更多的资料,那我很感兴趣。这些都是试探出来的,以及看了一些bios 程序,呵!
*/
#define CMOS_READ(addr) ({ \ // 这段宏读取CMOS 实时时钟信息。
outb_p (0x80 | addr, 0x70);
\ // 0x70 是写端口号,0x80|addr 是要读取的CMOS 内存地址。
inb_p (0x71);
\ // 0x71 是读端口号。
}
)
#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10) // 将BCD 码转换成数字。
static void time_init (void) // 该子程序取CMOS 时钟,并设置开机时间??startup_time(秒)。
{
struct tm time;
do
{
time.tm_sec = CMOS_READ (0); // 参见后面CMOS 内存列表。
time.tm_min = CMOS_READ (2);
time.tm_hour = CMOS_READ (4);
time.tm_mday = CMOS_READ (7);
time.tm_mon = CMOS_READ (8);
time.tm_year = CMOS_READ (9);
}
while (time.tm_sec != CMOS_READ (0));
BCD_TO_BIN (time.tm_sec);
BCD_TO_BIN (time.tm_min);
BCD_TO_BIN (time.tm_hour);
BCD_TO_BIN (time.tm_mday);
BCD_TO_BIN (time.tm_mon);
BCD_TO_BIN (time.tm_year);
time.tm_mon--;
startup_time = kernel_mktime (&time);
}
static long memory_end = 0; // 机器具有的内存(字节数)。
static long buffer_memory_end = 0; // 高速缓冲区末端地址。
static long main_memory_start = 0; // 主内存(将用于分页)开始的位置。
struct drive_info
{
char dummy[32];
}
drive_info; // 用于存放硬盘参数表信息。
void main (void) /* This really IS void, no error here. */
{ /* The startup routine assumes (well, ...) this */
/* 这里确实是void,并没错。在startup 程序(head.s)中就是这样假设的。 */
// 参见head.s 程序第136 行开始的几行代码。
/*
* Interrupts are still disabled. Do necessary setups, then
* enable them
*/
/*
* 此时中断仍被禁止着,做完必要的设置后就将其开启。
*/
// 下面这段代码用于保存:
// 根设备号 ??ROOT_DEV; 高速缓存末端地址??buffer_memory_end;
// 机器内存数??memory_end;主内存开始地址 ??main_memory_start;
ROOT_DEV = ORIG_ROOT_DEV;
drive_info = DRIVE_INFO;
memory_end = (1 << 20) + (EXT_MEM_K << 10); // 内存大小=1Mb 字节+扩展内存(k)*1024 字节。
memory_end &= 0xfffff000; // 忽略不到4Kb(1 页)的内存数。
if (memory_end > 16 * 1024 * 1024) // 如果内存超过16Mb,则按16Mb 计。
memory_end = 16 * 1024 * 1024;
if (memory_end > 12 * 1024 * 1024) // 如果内存>12Mb,则设置缓冲区末端=4Mb
buffer_memory_end = 4 * 1024 * 1024;
else if (memory_end > 6 * 1024 * 1024) // 否则如果内存>6Mb,则设置缓冲区末端=2Mb
buffer_memory_end = 2 * 1024 * 1024;
else
buffer_memory_end = 1 * 1024 * 1024; // 否则则设置缓冲区末端=1Mb
main_memory_start = buffer_memory_end; // 主内存起始位置=缓冲区末端;
#ifdef RAMDISK // 如果定义了虚拟盘,则主内存将减少。
main_memory_start += rd_init (main_memory_start, RAMDISK * 1024);
#endif
// 以下是内核进行所有方面的初始化工作。阅读时最好跟着调用的程序深入进去看,实在看
// 不下去了,就先放一放,看下一个初始化调用 -- 这是经验之谈?。
mem_init (main_memory_start, memory_end);
trap_init (); // 陷阱门(硬件中断向量)初始化。(kernel/traps.c,181 行)
blk_dev_init (); // 块设备初始化。 (kernel/blk_dev/ll_rw_blk.c,157 行)
chr_dev_init (); // 字符设备初始化。 (kernel/chr_dev/tty_io.c,347 行)
tty_init (); // tty 初始化。 (kernel/chr_dev/tty_io.c,105 行)
time_init (); // 设置开机启动时间??startup_time(见76 行)。
sched_init (); // 调度程序初始化(加载了任务0 的tr, ldtr) (kernel/sched.c,385)
buffer_init (buffer_memory_end); // 缓冲管理初始化,建内存链表等。(fs/buffer.c,348)
hd_init (); // 硬盘初始化。 (kernel/blk_dev/hd.c,343 行)
floppy_init (); // 软驱初始化。 (kernel/blk_dev/floppy.c,457 行)
sti (); // 所有初始化工作都做完了,开启中断。
// 下面过程通过在堆栈中设置的参数,利用中断返回指令切换到任务0。
move_to_user_mode (); // 移到用户模式。 (include/asm/system.h,第1 行)
if (!fork ())
{ /* we count on this going ok */
init ();
}
/*
* NOTE!! For any other task 'pause()' would mean we have to get a
* signal to awaken, but task0 is the sole exception (see 'schedule()')
* as task 0 gets activated at every idle moment (when no other tasks
* can run). For task0 'pause()' just means we go check if some other
* task can run, and if not we return here.
*/
/* 注意!! 对于任何其它的任务,'pause()'将意味着我们必须等待收到一个信号才会返
* 回就绪运行态,但任务0(task0)是唯一的意外情况(参见'schedule()'),因为任务0 在
* 任何空闲时间里都会被激活(当没有其它任务在运行时),因此对于任务0'pause()'仅意味着
* 我们返回来查看是否有其它任务可以运行,如果没有的话我们就回到这里,一直循环执行'pause()'。
*/
for (;;)
pause ();
}
static int printf (const char *fmt, ...)
// 产生格式化信息并输出到标准输出设备stdout(1),这里是指屏幕上显示。参数'*fmt'指定输出将
// 采用的格式,参见各种标准C 语言书籍。该子程序正好是vsprintf 如何使用的一个例子。
// 该程序使用vsprintf()将格式化的字符串放入printbuf 缓冲区,然后用write()将缓冲区的内容
// 输出到标准设备(1--stdout)。
{
va_list args;
int i;
va_start (args, fmt);
write (1, printbuf, i = vsprintf (printbuf, fmt, args));
va_end (args);
return i;
}
static char *argv_rc[] =
{
"/bin/sh", NULL}; // 调用执行程序时参数的字符串数组。
static char *envp_rc[] =
{
"HOME=/", NULL}; // 调用执行程序时的环境字符串数组。
static char *argv[] =
{
"-/bin/sh", NULL}; // 同上。
static char *envp[] =
{
"HOME=/usr/root", NULL};
void init (void)
{
int pid, i;
// 读取硬盘参数包括分区表信息并建立虚拟盘和安装根文件系统设备。
// 该函数是在25 行上的宏定义的,对应函数是sys_setup(),在kernel/blk_drv/hd.c,71 行。
setup ((void *) &drive_info);
(void) open ("/dev/tty0", O_RDWR, 0); // 用读写访问方式打开设备“/dev/tty0”,
// 这里对应终端控制台。
// 返回的句柄号0 -- stdin 标准输入设备。
(void) dup (0); // 复制句柄,产生句柄1 号 -- stdout 标准输出设备。
(void) dup (0); // 复制句柄,产生句柄2 号 -- stderr 标准出错输出设备。
printf ("%d buffers = %d bytes buffer space\n\r", NR_BUFFERS, NR_BUFFERS * BLOCK_SIZE); // 打印缓冲区块数和总字节数,每块1024 字节。
printf ("Free mem: %d bytes\n\r", memory_end - main_memory_start); //空闲内存字节数。
// 下面fork()用于创建一个子进程(子任务)。对于被创建的子进程,fork()将返回0 值,
// 对于原(父进程)将返回子进程的进程号。所以180-184 句是子进程执行的内容。该子进程
// 关闭了句柄0(stdin),以只读方式打开/etc/rc 文件,并执行/bin/sh 程序,所带参数和
// 环境变量分别由argv_rc 和envp_rc 数组给出。参见后面的描述。
if (!(pid = fork ()))
{
close (0);
if (open ("/etc/rc", O_RDONLY, 0))
_exit (1); // 如果打开文件失败,则退出(/lib/_exit.c,10)。
execve ("/bin/sh", argv_rc, envp_rc); // 装入/bin/sh 程序并执行。
_exit (2); // 若execve()执行失败则退出(出错码2,“文件或目录不存在”)。
}
// 下面是父进程执行的语句。wait()是等待子进程停止或终止,其返回值应是子进程的进程号(pid)。
// 这三句的作用是父进程等待子进程的结束。&i 是存放返回状态信息的位置。如果wait()返回值不
// 等于子进程号,则继续等待。
if (pid > 0)
while (pid != wait (&i))
/* nothing */ ;
// 如果执行到这里,说明刚创建的子进程的执行已停止或终止了。下面循环中首先再创建一个子进程,
// 如果出错,则显示“初始化程序创建子进程失败”的信息并继续执行。对于所创建的子进程关闭所有
// 以前还遗留的句柄(stdin, stdout, stderr),新创建一个会话并设置进程组号,然后重新打开
// /dev/tty0 作为stdin,并复制成stdout 和stderr。再次执行系统解释程序/bin/sh。但这次执行所
// 选用的参数和环境数组另选了一套(见上面165-167 行)。然后父进程再次运行wait()等待。如果
// 子进程又停止了执行,则在标准输出上显示出错信息“子进程pid 停止了运行,返回码是i”,然后
// 继续重试下去…,形成“大”死循环。
while (1)
{
if ((pid = fork ()) < 0)
{
printf ("Fork failed in init\r\n");
continue;
}
if (!pid)
{
close (0);
close (1);
close (2);
setsid ();
(void) open ("/dev/tty0", O_RDWR, 0);
(void) dup (0);
(void) dup (0);
_exit (execve ("/bin/sh", argv, envp));
}
while (1)
if (pid == wait (&i))
break;
printf ("\n\rchild %d died with code %04x\n\r", pid, i);
sync ();
}
_exit (0); /* NOTE! _exit, not exit() */
}
SPSS FOR WINDOWS简明教程
SPSS FOR WINDOWS简明教程
SPSS FOR WINDOWS简明教程
SPSS FOR WINDOWS简明教程
SPSS FOR WINDOWS简明教程
SPSS FOR WINDOWS简明教程
jsp实用案例教程源码清华大学出版社 冯燕奎 的编著的jsp实用案例教程的源码
jsp实用案例教程源码清华大学出版社 冯燕奎 的编著的jsp实用案例教程的源码 jsp实用案例教程源码清华大学出版社 冯燕奎 的编著的jsp实用案例教程的源码 jsp实用案例教程源码清华大学出版社 冯燕奎 的编著的jsp实用案例教程的源码
HDU_ACM培训课件(完整版)
HDU_ACM培训课件(完整版)
HDU_ACM培训课件(完整版)
HDU_ACM培训课件(完整版)
HDU_ACM培训课件(完整版)
Keil uVision4(官方原版)+注册机
Keil uVision4(官方原版)+注册机
Keil uVision4(官方原版)+注册机
Keil uVision4(官方原版)+注册机
Keil uVision4(官方原版)+注册机
VMware Workstation 7.1 官方正式版下载地址+序列号(注册码)
绝对可用,经本人亲测!
VMware Workstation 7.1 官方正式版下载地址+序列号(注册码)
VMware Workstation 7.1 官方正式版下载地址+序列号(注册码)
VMware Workstation 7.1 官方正式版下载地址+序列号(注册码)
PPT转WORD(绿色免安装版)
本程序可以将PPT文件的所有文字内容(包括幻灯片和备注)提取成WORD文档,该文件保存于PPT文件所在目录,若PPT文件名为“XXX.ppt”,则转换获得的WORD文档的文件名将是“XXX.ppt.Convertor.doc”。本程序转换后的WORD文档中文字顺序排列,并未排版,因此尚需用户自行调整。
本程序无需安装,直接运行。最好将之前运行的 WORD 和 POWERPOINT 程序均关闭。将欲操作的PPT文件拖入程序,按程序界面中的“开始”按钮即可。操作过程中幻灯片和Word文档自行活动,不必担心。转换时间视幻灯片文字多少而定,一般1至2分钟搞定。转换结束后程序自动退出。
转换前可以选择获是否在得的Word文档中添加分隔标志文字。若选择添加,则分隔标志文字的格式为:Page No.X:表明其后的文字源于第X张幻灯片;WordsFromSlide:表明其后的文字源于幻灯片页面;WordsFromNotePage:表明其后的文字源于备注页面。
MATLAB算法大全
算法大全第01章__线性规划
算法大全第03章_非线性规划
算法大全第04章__动态规划
算法大全第05章__图与网络
算法大全第06章_排队论
算法大全第07章_对策论
算法大全第08章__层次分析法
算法大全第09章_插值与拟合
算法大全第10章_数据的统计描述和分析
算法大全第11章_方差分析
算法大全第12章_回归分析
算法大全第13章_微分方程建模
算法大全第14章_稳定状态模型
算法大全第15章_常微分方程的解法
算法大全第16章_差分方程模型
算法大全第17章_马氏链模型
算法大全第18章_变分法模型
算法大全第19章_神经网络模型
算法大全第20章_偏微分方程的数值解
算法大全第21章_目标规划
算法大全第22章__模糊数学模型
算法大全第23章__现代优化算法
算法大全第24章_时间序列模型
算法大全第25章__存贮论
算法大全第26章__经济与金融中的优化问题
算法大全第27章__生产与服务运作管理中的优化问题
算法大全第28章__灰色系统理论及其应用
算法大全第29章_多元分析
算法大全第30章__偏最小二乘回归
算法大全附录一__Matlab入门
算法大全附录二__Matlab在线性代数中的应用
win32 api 大全
win32 api 大全win32 api 大全win32 api 大全win32 api 大全win32 api 大全win32 api 大全win32 api 大全win32 api 大全win32 api 大全
JAVA通信QQ源码
JAVA通信QQ源码JAVA通信QQ源码JAVA通信QQ源码JAVA通信QQ源码JAVA通信QQ源码JAVA通信QQ源码JAVA通信QQ源码JAVA通信QQ源码JAVA通信QQ源码JAVA通信QQ源码
Java课程设计桉例精编源代码
Java课程设计桉例精编源代码
Java课程设计桉例精编源代码
Java课程设计桉例精编源代码
Java课程设计桉例精编源代码
种类比较多
Java课程设计大全
Java课程设计
Java课程设计
Java课程设计
比较全
2010高教社杯全国大学生数学建模竞赛评阅要点
2010高教社杯全国大学生数学建模竞赛A题评阅要点
2010高教社杯全国大学生数学建模竞赛B题评阅要点
ADS2009快速入门中文教程
ADS – Advanced Design System,由美国Agilent公司推出的微波电路和通信系统仿真软
件,是当今业界最流行的微波射频电路、通信系统、RFIC设计软件;也是国内高校、科研
院所和大型IT公司使用最多的软件之一。其功能非常强大,仿真手段丰富多样,可实现包
括时域和频域、数字与模拟、线性与非线性、噪声等多种仿真分析手段,并可对设计结果
进行成品率分析与优化,从而大大提高了复杂电路的设计效率,是非常优秀的微波射频电
路、系统信号链路的设计工具。主要应用于:射频和微波电路的设计,通信系统的设计,
RFIC设计,DSP设计和向量仿真;是射频工程师必备的工具软件。
ADS2009 快速入门中文教程主要讲述ADS2009 版本软件基本功能,用户界面和基本操作,
以及仿真设计过程.以期学员能对ADS2009 有个初步的认识.
教程目录如下:
第一章:使用ADS项目
第二章:使用ADS的设计
第三章:ADS中的仿真设计
第四章:ADS仿真结果显示和分析
第五章:ADS输入输出
第六章:ADS仿真控制器介绍
嵌入式Linux应用程序开发详解
嵌入式Linux应用程序开发详解嵌入式Linux应用程序开发详解嵌入式Linux应用程序开发详解嵌入式Linux应用程序开发详解嵌入式Linux应用程序开发详解嵌入式Linux应用程序开发详解嵌入式Linux应用程序开发详解嵌入式Linux应用程序开发详解嵌入式Linux应用程序开发详解嵌入式Linux应用程序开发详解
ADS1.2中文手册
ADS1.2中文手册.pdf
ADS1.2中文手册.pdf
ADS1.2中文手册.pdf
S3C2440全套中文手册+S3C2440全套英文手册
S3C2440全套中文手册+S3C2440全套英文手册
S3C2440全套中文手册+S3C2440全套英文手册
S3C2440全套中文手册+S3C2440全套英文手册
java中 如何终止一个线程
java中 使用interrput 如何终止一个线程
Android联系人-通话记录-短信
Android 短信 联系人 通话记录总结
嵌入式Linux应用开发完全手册
.
|-- drivers_and_test
| |-- buttons
| | |-- button_test.c
| | |-- Makefile
| | `-- s3c24xx_buttons.c
| |-- fb_test
| | |-- fb.h
| | |-- fb_test.c
| | `-- Makefile
| |-- leds
| | |-- led_test
| | |-- led_test.c
| | |-- Makefile
| | `-- s3c24xx_leds.c
| `-- regeditor
| |-- Makefile
| `-- regeditor.c
|-- hardware
| |-- adc_ts
| | |-- adc_ts.c
| | |-- adc_ts.h
| | |-- adc_ts.lds
| | |-- head.S
| | |-- include
| | | |-- ctype.h
| | | |-- gcclib.h
| | | |-- kernel.h
| | | |-- stdio.h
| | | |-- string.h
| | | |-- system.h
| | | `-- types.h
| | |-- init.c
| | |-- interrupt.c
| | |-- interrupt.h
| | |-- lib
| | | |-- ctype.c
| | | |-- div64.h
| | | |-- div64.S
| | | |-- lib1funcs.S
| | | |-- Makefile
| | | |-- muldi3.c
| | | |-- printf.c
| | | |-- printf.h
| | | |-- string.c
| | | |-- vsprintf.c
| | | `-- vsprintf.h
| | |-- main.c
| | |-- Makefile
| | |-- nand.c
| | |-- s3c24xx.h
| | |-- serial.c
| | `-- serial.h
| |-- hello
| | `-- hello.c
| |-- i2c
| | |-- head.S
| | |-- i2c.c
| | |-- i2c.h
| | |-- i2c.lds
| | |-- include
| | | |-- ctype.h
| | | |-- gcclib.h
| | | |-- kernel.h
| | | |-- stdio.h
| | | |-- string.h
| | | |-- system.h
| | | `-- types.h
| | |-- init.c
| | |-- interrupt.c
| | |-- interrupt.h
| | |-- lib
| | | |-- ctype.c
| | | |-- div64.h
| | | |-- div64.S
| | | |-- lib1funcs.S
| | | |-- Makefile
| | | |-- muldi3.c
| | | |-- printf.c
| | | |-- printf.h
| | | |-- string.c
| | | |-- vsprintf.c
| | | `-- vsprintf.h
| | |-- m41t11.c
| | |-- m41t11.h
| | |-- main.c
| | |-- Makefile
| | |-- nand.c
| | |-- s3c24xx.h
| | |-- serial.c
| | `-- serial.h
| |-- int
| | |-- head.S
| | |-- init.c
| | |-- interrupt.c
| | |-- main.c
| | |-- Makefile
| | `-- s3c24xx.h
| |-- key_led
| | |-- crt0.S
| | |-- key_led.c
| | `-- Makefile
| |-- lcd
| | |-- framebuffer.c
| | |-- framebuffer.h
| | |-- head.S
| | |-- include
| | | |-- ctype.h
| | | |-- gcclib.h
| | | |-- kernel.h
| | | |-- stdio.h
| | | |-- string.h
| | | |-- system.h
| | | `-- types.h
| | |-- init.c
| | |-- interrupt.c
| | |-- interrupt.h
| | |-- lcddrv.c
| | |-- lcddrv.h
| | |-- lcd.lds
| | |-- lcdlib.c
| | |-- lcdlib.h
| | |-- lib
| | | |-- ctype.c
| | | |-- div64.h
| | | |-- div64.S
| | | |-- lib1funcs.S
| | | |-- Makefile
| | | |-- muldi3.c
| | | |-- printf.c
| | | |-- printf.h
| | | |-- string.c
| | | |-- vsprintf.c
| | | `-- vsprintf.h
| | |-- main.c
| | |-- Makefile
| | |-- nand.c
| | |-- s3c24xx.h
| | |-- serial.c
| | `-- serial.h
| |-- led_on
| | |-- led_on.S
| | `-- Makefile
| |-- led_on_c
| | |-- crt0.S
| | |-- led_on_c.c
| | |-- led_on_c.c.bak
| | `-- Makefile
| |-- leds
| | |-- crt0.S
| | |-- leds.c
| | |-- leds.lds
| | `-- Makefile
| |-- link
| | `-- link.S
| |-- mmu
| | |-- head.S
| | |-- init.c
| | |-- leds.c
| | |-- Makefile
| | `-- mmu.lds
| |-- nand
| | |-- head.S
| | |-- init.c
| | |-- main.c
| | |-- Makefile
| | |-- nand.c
| | `-- nand.lds
| |-- options
| | |-- main.c
| | |-- Makefile
| | |-- sub.c
| | `-- sub.h
| |-- sdram
| | |-- head.S
| | |-- leds.c
| | `-- Makefile
| |-- stdio
| | |-- head.S
| | |-- include
| | | |-- ctype.h
| | | |-- gcclib.h
| | | |-- kernel.h
| | | |-- stdio.h
| | | |-- system.h
| | | `-- types.h
| | |-- init.c
| | |-- lib
| | | |-- ctype.c
| | | |-- div64.h
| | | |-- div64.S
| | | |-- lib1funcs.S
| | | |-- Makefile
| | | |-- muldi3.c
| | | |-- printf.c
| | | |-- printf.h
| | | |-- string.c
| | | |-- string.h
| | | |-- vsprintf.c
| | | `-- vsprintf.h
| | |-- main.c
| | |-- Makefile
| | |-- nand.c
| | |-- s3c2410.h
| | |-- serial.c
| | |-- serial.h
| | `-- stdio.lds
| |-- timer
| | |-- head.S
| | |-- init.c
| | |-- interrupt.c
| | |-- interrupt.h
| | |-- main.c
| | |-- Makefile
| | |-- s3c24xx.h
| | `-- timer.lds
| `-- uart
| |-- head.S
| |-- init.c
| |-- main.c
| |-- Makefile
| |-- s3c24xx.h
| |-- serial.c
| |-- serial.h
| `-- uart.lds
`-- log
31 directories, 194 files
C和指针 第二版(高清)
C和指针 第二版(高清)
C和指针 第二版(高清)
C和指针 第二版(高清)
C和指针 第二版(高清)
Android应用开发揭秘源码(全部源码)
Android应用开发揭秘源码(全部源码)
嵌入式Linux体验入门班实验手册
嵌入式Linux体验入门班实验手册
嵌入式Linux体验入门班实验手册
嵌入式Linux体验入门班实验手册
嵌入式Linux体验入门班实验手册