摘要: 1.字串拷贝库函数strcpy 函数介绍: 原型声明:extern char *strcpy(char *dest,const char *src); 头文件:string.h 功能:把从src地址开始且含有NULL结束符的字符串赋值到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针 典型实现:1 char *strcpy(char *strDestination, const char *strSource)2 {3 4 assert(strDestinatio... 阅读全文
posted @ 2013-11-29 10:56 大兔子_快跑 阅读(877) 评论(0) 推荐(1) 编辑
摘要: 最近工作需要逆向工程的技术,醒悟自己以前好高骛远,误以为拿来主义即可,许许多多基础知识并不扎实,弄得焦头烂额。千里之行始于足下,记录一下自己的前行脚步。参考链接:http://www.feiesoft.com/asm/03-4.html汇编指令组成: 操作码:规定所要执行的操作类型操作数:所要处理的数据或数据的位置信息在操作数部分通常不是直接给出操作数的数据本身,而是给出该数据的位置信息,如何获得数据的方式称为寻址方式。例如:指令 MOV AX,1234H指令里有两个操作数,按照指令中所处的位置,将前者称为目的操作数,后者称为源操作数。该指令的作用是把数据1234H传送到AX中。源操作数是“立 阅读全文
posted @ 2013-11-29 10:47 大兔子_快跑 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: 1.哲学家进餐问题:(1)在什么情况下5个哲学家全部吃不上饭?考虑两种实现的方式,如下:A.算法描述:void philosopher(int i) /*i:哲学家编号,从0 到4*/{ while (TRUE) { think( ); /*哲学家正在思考*/ take_fork(i); /*取左侧的筷子*/ take_fork((i+1) % N); /*取左侧筷子;%为取模运算*/ eat( ); /*吃饭*/ put_fork(i); /*把左侧筷子放回桌子*/ put_fork((i+1) % N... 阅读全文
posted @ 2013-06-05 09:12 大兔子_快跑 阅读(898) 评论(0) 推荐(0) 编辑
摘要: 还记得每个使用者在他的 /etc/passwd 里面的第四栏有所谓的 GID 吧?那个 GID 就是所谓的『初始用户组 (initial group) 』!也就是说,当用户一登陆系统,立刻就拥有这个用户组的相关权限。 举例来说,我们上面提到 dmtsai 这个使用者的 /etc/passwd 与 /etc/group 还有 /etc/gshadow 相关的内容如下:[root@www ~]# usermod -G users dmtsai <==先配置好次要群组[root@www ~]# grep dmtsai /etc/passwd /etc/group /etc/gshadow/et 阅读全文
posted @ 2012-10-15 22:32 大兔子_快跑 阅读(2269) 评论(0) 推荐(0) 编辑
摘要: 1.基础概念实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,不如说“老师与学校的关系”。属性:教科书上解释为:“实体所具有的某一特性”,由此可见,属性一开始是个逻辑概念,比如说,“性别”是“人”的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”。元组:表中的一行就是一个元组。分量:元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库了。码:表中可以唯一确定一个元组的某个属性( 阅读全文
posted @ 2012-10-10 22:43 大兔子_快跑 阅读(960) 评论(0) 推荐(0) 编辑
摘要: 什么是 X Window System?X Window即X Windows图形用户接口,是一种计算机软件系统和网络协议,提供了一个基础的图形用户界面(GUI)和丰富的输入设备能力联网计算机。其中软件编写使用广义的命令集,它创建了一个硬件抽象层,允许设备独立性和重用方案的任何计算机上实现。主要组件: X Server/X Client/Window Manager/Display Manager1.服务端(X Server):硬件管理、屏幕绘制、提供字体功能 Server是控制显示器和输入设备(键盘和鼠标)的软件。Server可以创建视窗,在视窗中绘图和文字,回应Client程序的“需求”(. 阅读全文
posted @ 2012-10-02 21:04 大兔子_快跑 阅读(1396) 评论(0) 推荐(0) 编辑
摘要: 1.加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备BIOS是一组固化到计算机内主板上一个ROM芯片上的程序,其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。BIOS中主要存放: ●自诊断程序:通过读取CMOS RAM中的内容识别硬件配置,并对其进行自检和初始化; ● CMOS设置程序:引导过程中,用特殊热键启动,进行设置后,存入CMOS RAM中; ● 系统自举装载程序:在自检成功后将磁盘相对0道0扇区(MBR:主引导扇区)上的引导程序装入内存,让其运行以装入系统; ● 主要I/O设备的驱动程序和中断服务。2.读取并执行第一个启动设备内MBR的Boot... 阅读全文
posted @ 2012-10-02 00:15 大兔子_快跑 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 迭代是数值分析中通过从一个初始估计出发寻找一系列近似解来解决问题(一般是解方程或者方程组)的过程,为实现这一过程所使用的方法统称为迭代法(Iterative Method)。 一般可以做如下定义:对于给定的线性方程组x=Bx+f(这里的x、B、f同为矩阵,任意线性方程组都可以变换成此形式),用公式x(k+1)=Bx(k)+f(括号中为上标,代表迭代k次得到的x,初始时k=0)逐步带入求近似解的方法称为迭代法(或称一阶定常迭代法)。如果k趋向无穷大时limt(k)存在,记为x*,称此迭代法收敛。显然x*就是此方程组的解,否则称为迭代法发散。 跟迭代法相对应的是直接法(或者称为一次解法),即一次. 阅读全文
posted @ 2012-09-25 21:01 大兔子_快跑 阅读(5372) 评论(1) 推荐(1) 编辑
摘要: 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。一、位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:struct 位域结构名 { 位域列表};其中位域列表的形式为: 类型说明符 位域名:位域长度位域变量的说明与结构变量说明的方 阅读全文
posted @ 2012-09-20 17:18 大兔子_快跑 阅读(55431) 评论(19) 推荐(11) 编辑
摘要: 并发是所有问题的基础,也是操作系统设计的基础。和并发的相关的关键术语临界区: 是一段代码,在这段代码中进程访问共享资源,当另一个进程已在这个代码中运行,其他进程不能在这段代码中执行。忙等待:进程得不到共享资源时,仍不主动放弃CPU,不断检测资源是否可用,尽管CPU可能被剥夺,被其它进程抢占,因而是低效的。阻塞式等待:进程得不到共享资源时将进入阻塞状态,让出CPU给其他进程使用,因而是高效的。饥饿:指一个可运行的进程尽管能继续运行,但被调度器无限期地忽视,而不能被调度执行的情况。死锁:两个或两个以上的进程因为其中的每个进程都在等待其他进程做完某些事情而不能继续执行。例如线程T1 获得了资源R1, 阅读全文
posted @ 2012-09-18 10:33 大兔子_快跑 阅读(1885) 评论(0) 推荐(0) 编辑