c语言
xiangke975
这个作者很懒,什么都没留下…
展开
-
第八章-进程控制
进程控制进程标识函数fork函数vfork函数exit函数wait、waitpid和waitid竞争条件函数exec更改用户id和更改组id解释器文件函数system进程会计进程调度进程时间进程标识进程标识是非负整数,具有唯一性和可复用性ID为0的进程通常是调度进程(swapper),是内核的一部分,ID为1的进程通常是init进程,是一个普通的用户进程,通常读取与系统有关的初始化文件,该...原创 2020-02-08 19:58:05 · 315 阅读 · 0 评论 -
第七章-进程环境
第七章-进程环境main函数进程终止命令行参数环境表C程序的存储空间布局共享库存储空间分配环境变量函数setjmp和longjmpmain函数C程序总是从main函数开始执行。其原型是:int main(int argc, char *argc[]);/*argc是命令行参数的数目,argv是指向参数的各个指针所构成的数组*/内核使程序执行的唯一方法是调用一个exec函数进...原创 2020-02-03 10:25:02 · 196 阅读 · 0 评论 -
第三章-文件I/O
文件I/O引言文件描述符函数open、openat和create函数close函数lseek函数read函数writeI/O的效率文件共享原子操作函数dup和dup2函数sync、fsync和fdatasync函数fcntl函数ioctl/dev/fd引言本章描述的函数经常被称为不带缓冲的I/O,先说明可用的文件I/O函数,然后,进一步讨论在多个进程间如何共享文件,以及所涉及的内核有关数据结构...原创 2020-01-07 20:27:43 · 173 阅读 · 0 评论 -
第五章-标准I/O库
标准I/O库流和FILE对象缓冲打开流读和写流如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入流和FILE对象NAME fwide - set ...原创 2020-01-05 16:37:49 · 277 阅读 · 0 评论 -
使用CAN Utilities对CAN接口进行测试
使用CAN Utilities对CAN接口进行测试Linux系统通过SocketCAN层提供CAN支持,使得可以使用类似操作socket API函数来操作CAN总线,具体关于SocketCAN说明请见这里。/*ip –details查看CAN总线状态*/root@freescale /$ ip -details link show can02: can0: <NOARP,UP,LOW...原创 2019-12-21 17:17:15 · 807 阅读 · 0 评论 -
计算机组成与设计 - 流水线冒险
冒险流水线技术之所以能提高性能 究其本质是利用了时间上的并行性,那它让原本应该先后执行的指令在时间上一定程度的并行起来,然而这也会带来一些冲突和矛盾,进而可能引发错误。冒险(Hazard):在流水线中我们希望当前每个时钟周期都有一条指令进入流水线可以执行。但在某些情况下,下一条指令无法按照预期开始执行,这种情况就被称为冒险。冒险分为三种:**结构冒险:**如果一条指令需要的硬件部件还在为之...原创 2019-11-05 11:18:11 · 2987 阅读 · 1 评论 -
汇编语言(王爽 第三版)第九章
笔记:操作符offset取得标号偏移地址,由编译器处理CPU在执行jmp指令时并不需要转移的目的地址,依据位移进行转移检测点9.1(1)只要ds:[bx+1]起始地址的两个字节为0就可以了:答案①db 3 dup (0)答案②dw 2 dup (0)答案③dd 0编译器对jmp’指令处理后,会算出目的地址相对jmp指令地址的偏移。在jmp指令中,我们需要把跳转到要执行指令的地址...原创 2019-09-01 11:12:44 · 403 阅读 · 0 评论 -
汇编语言(王爽 第三版) 实验八
分析程序,在运行前思考:这个程序是否能够正确返回?是,分析如下start: mov ax,0 s: nop ; nop标号语句,在运行时在代码段中分配一个字节的空间, nop ; 这个字节(空间)的值为90h。 ; 操作符 `offset` 的功能是取得标号的偏移地址。 mov di,offset s ; 将 s 的偏移地址存到...原创 2019-09-01 11:23:56 · 1977 阅读 · 1 评论 -
汇编语言 王爽(第三版)实验九
实验要求:显示绿色、红底绿色、白底蓝色的welcome to masm!assume cs:codesg,ds:datasgdatasg segment db 'welcome to masm!' db 2,24h,71hdatasg endscodesg segmentstart: mov ax,0b800h mov es,ax ;es point to the disp...原创 2019-09-01 12:43:22 · 895 阅读 · 0 评论 -
汇编语言(王爽 第三版)第十章
ret和retf指令检测点10.1mov ax, 1000hmov ax, 0call指令不能实现短转移依据位移进行转移的call指令检测点10.2ax=6,因为子程序没有返回,而IP总是指向要执行的下一条指令转移的目的地址在指令中的call指令检测点10.3ax=1010h转移地址在内存中的call指令检测点10.4ax=3检测点10.5ax=1bx=...原创 2019-09-01 17:26:01 · 451 阅读 · 0 评论 -
汇编语言(王爽 第三版) 实验十
一. 子程序:显示字符串实验要求:在屏幕的8行3列,用绿色显示data段中的字符串。名称:show_str功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。参数:(dh)=行号(0-24取值范围);(dl)=列号(0-79取值范围);(cl)=颜色(是一个二进制排列组合的值);ds:si指向字符串的首地址。实验目的:1.熟练掌握在dos屏幕上输出字符的基本操作。掌握显示缓冲区...原创 2019-09-01 19:00:13 · 2885 阅读 · 0 评论 -
汇编语言 王爽(实验七)
以下是我实现的代码,为了减少代码,加快编程,数据量由21减少为4,仅供参考assume cs:codeseg,ds:dataseg,es:tabledataseg segment db '1975','1976','1977','1978' dd 16,22,382,1356 dw 3,7,9,13dataseg endstable segment db 4 dup (...原创 2019-08-31 11:45:07 · 1313 阅读 · 0 评论 -
汇编语言(王爽 第三版)实验6
1,数据以字符形式给出assume cs:code,ds:datadata segment db 'unIX' db 'foRK'data endscode segment start: mov al,'a' mov bl,'b' mov ax,4c00h int 21hcode endsend start 2,大小写转换问题ASCII码第五位...原创 2019-08-30 16:07:29 · 2922 阅读 · 2 评论 -
汇编语言(王爽 第三版)检测点和实验
第一章检测点1.113 (8kb = 8 * 1024 = 2^13)1024 0 10238*1024 1024 (1 byte = 8 bit,计算机以byte为存储单位)1024^3 1024^2 10242^6 1 2^4 2^2 (kb = 2^10 Mb = 2^20 Gb = 2^30)1 1 2 2 4512 256 (8...原创 2019-08-29 21:47:44 · 1487 阅读 · 0 评论 -
CUnit使用入门-精简的C语言单元测试工具
CUnit是一种C语言单元测试框架 ,继Junit CppUnit的成功后, c语言环境下也出现了开发源码的白盒测试用例CUnit。CUnit以静态库的形式提供给用户使用,用户编写程序的时候直接链接此静态库就可以了。它提供了一个简单的单元测试框架,并且为常用的数据类型提供了丰富的断言语句支持原创 2015-09-18 20:15:24 · 3495 阅读 · 2 评论 -
Linux操作系统的分类和解释
什么是Linux? 也许很多人会不屑的说,Linux不就是个操作系统么。错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。 既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指 GNU/转载 2016-11-09 22:31:55 · 787 阅读 · 0 评论 -
计算机系统漫游学习笔记
信息就是位+上下文程序被其他其他程序翻译成不同的格式了解编译系统如何工作是大有益处的处理器读并解释存储在存储器中的指令高速缓存形成层次结构的存储设备操作系统管理硬件利用网络和其他系统进行通信原创 2016-11-13 12:01:28 · 324 阅读 · 0 评论 -
【专栏】数据结构和算法之美-链表(上):如何实现LRU缓存淘汰算法?
学习笔记链表结构单链表示意图如下结构特征:尾节点的指针域指向NULL用头节点记录链表的基地址行为特征:插入或删除只需要考虑相邻节点指针的改变,其时间复杂度是O(1)通过指针将零散的内存块串联起来使用随机访问第K个元素的时间复杂度是O(n), 每个节点只能找到它后面的节点,因而要找到第K个元素就需要从链表头开始一个一个往后询问直到遇到第K个,没有数组那么好的性能。下图演示插...原创 2018-11-15 22:25:13 · 334 阅读 · 0 评论 -
数据结构和算法之美-二叉树(上)
学习笔记“树”这种数据结构的形态特征包括有哪些命名节点和它们的概念,这些节点是根节点,叶子节点,父节点,子节点,兄弟节点等;以及相关节点关系的建立,这些关系是父子关系和兄弟关系“树"这种数据结构的‘物理’特征包括树的高度,深度,层和树的高度及其概念。几种特殊二叉树的形态特征: 满二叉树,完全二叉树。树的存储方法一种是基于指针或引用的链式存储,另一种是基于数组的顺序存储...原创 2018-11-14 10:05:39 · 174 阅读 · 0 评论 -
【专栏】数据结构和算法之美-为什么很多编程语言中的数组都是从 0 开始的
学习笔记数组的特征1.线性表数据排成像一条线一样的结构,数据之间只是简单的前后关系。除了数组是一种线性表结构外,链表、队列和栈也是。与之对应的像二叉树、堆、图等就是非线性表。2.使用连续的内存空间3.存储相同类型数据特征2和3为随机访问到数组里的元素提供了可能,就是任意下标指示的元素可以直接访问到,寻址公式a[i]_address = base_address + i*data_t...原创 2018-11-14 16:18:04 · 211 阅读 · 0 评论 -
【专栏】数据结构与算法之美-目录
I. Referencesource code : https://github.com/wangzheng0822/algoII. Contents开篇词 : 从今天起,跨过“数据结构与算法”这道坎为什么要学习数据结构和算法?如何抓住重点,系统高效地学习数据结构和算法?复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度...原创 2018-11-12 20:24:15 · 2111 阅读 · 0 评论 -
Linux内核之旅-中断处理的软中断
前言中断处理程序机制局限性,它只能作为中断处理流程的“上半部”1,中断随时都会发生,它会以异步方式执行。2,中断处理程序要尽快地执行完(要它完成的工作越少越好),首先、它通常需要对硬件进行操作,这本身带来了时限要求,第二、其他中断都会被屏蔽,这直接影响了操作系统和硬件的通信,中断被屏蔽的时间会极大的影响系统的响应能力和性能。最后、它不再进程上下文中,不能被阻塞。该如何分配中断处理的...原创 2018-11-14 22:58:15 · 902 阅读 · 0 评论 -
【专栏】数据结构和算法之美-队列:队列在线程池等有限资源池中的应用
学习笔记如何理解“队列”?结构特征操作受限的线性表数据结构两端开放,一端是数据的入口,另一端是数据的出口行为特征先进先出,类似于水管,从一端进水,另一端出水,先进去的水会先流出来如何实现队列?基于数组实现:顺序队列/*Queue implement based on the array*//*Queue implement based on the linked lis...原创 2018-11-22 16:35:58 · 243 阅读 · 0 评论 -
嵌入式硬件及接口开发实践
实验内容包括:1、汇编语言程序里调用C语言程序实现5个整数的求和2、C语言程序里调用汇编语言程序实现字符串拷贝3、汇编语言实现beep蜂鸣,LED点亮,熄灭4、实现六按键中断处理程序。原创 2015-09-21 20:39:48 · 4589 阅读 · 0 评论