电路基础 --- 第四章 分析电路方法 对于叠加定理来说不一定要每个电源单独计算,也可以分成(多+多)的形式进行代数和计算受控源在电路中不进行叠加法运算,受控源在电路中起相应作用不起激励作用,但是受控量值要跟随控制量进行改变
电路基础笔记 --- 第一章 关于电路吸收及发出功率的判断:其实关于这个问题根据实际电流和电压更好判断,我们根据参考电压及参考电流再结合各自数值画出对于元件来说的实际电流方向和电位高低,在实际电流方向通过元件时如果电位变高则代表元件在产生功率,反之则表明在吸收功率结果:由此 我们又可以得到一个结论,在一个电路中我们提供多少功率就吸收了多少功率。
Linux笔记 --- 目录检索 Linux中的目录与windows的文件夹相似但是概念大相径庭,windows中子文件一定不会比母文件夹大,但在Linux目录中是可以实现的,目录是一种文件索引表,下图是分区和目录的关系Linux中目录是一组由文件名和索引号组成的索引表,目录下的文件的真正内容存储再分区中的数据域区域,目录中索引的每一项都被称为“目录项”,里面至少存放一个名字(不含路径)+索引号(分区唯一),当我们访问某一个文件的时候就是根据名字找索引号,再在i-node节点域中查找到对应的节点。
Linux笔记 --- 文件属性 属性结构体stat中有两个成员涉及文件的设备号,他们分别是 st_dev和 st_rdev,前者只对普通文件有效,它包含了普通文件所在的设备的设备号,因此这个成员对于特殊文件而言是无意义的。从上面的执行结果看到,在/dev下的文件没有“大小”的属性,而只有两个号码,比如文件tty,设备号为5,0,其中前面的5是所谓的主设备号,用来标识一种设备的类型,后面的0是所谓的次设备号,用来区分本系统中的多个同类设备。的属性,比如工程管理器make,他的工作原理就完全基于文件的时间戳上,判断文件的被。
Linux笔记 --- 标准IO 系统IO的最大特点一个是更具通用性,不管是普通文件、管道文件、设备节点文件、接字文件等等都可以使用,另一个是他的简约性,对文件内数据的读写在任何情况下都是带任何格式的,而且数据的读写也都没有经过任何缓冲处理,这样做的理由是尽量精简内API,而更加丰富的功能应该交给第三方库去进一步完善。
Linux笔记 --- IO编程之文件操作 从效果来看,我们不仅可以通过lseek()来调整当前文件偏移量,甚至还可以可以将位置偏移量调整到文件之外,形成一个空洞,这种特性其实是非常重要的,它提供了可以在不同地方同时写一个文件的可能,对于一个较大的文件而言,我们可以通过在文件中定位到一个指定的地方,让多个进程同时在不同的偏移量处写入文件数据。上述代码将fd对应的文件的工作模式设置为所谓的异步方式,FIOASUNC就是其中的一个通用的命令字,而后续的变量on则是其所需要的对应的值。4,其返回值就是一个代表这个文件的描述符,是一个非负整数。
Linux笔记 --- 队列 相较于栈,队列最大的不同就是其进出逻辑是先进先出,当我们严格对一个线性表做出这种限制的话这个表就被称为队列,入队的一端被称为队尾,出队的一端为队头队列同样可以分为顺序队列和链队。
Linux笔记 --- Linux内核链表 这样,链表的逻辑就被单独地剥离开来了,所带来的好处是巨大的:我们可以定义针对内核链表的基本操作并将之运用到任何类型的节点中,因为此时我们对链表的操作已经完全与数据无关,所有操作统一针对Linux标准抽象链表,可以适用任何类型数据的节点。而Linux内核链表则完美地避免了这种情况(广告时间),因为任何情形下对链表的操作都是统一的,跟具体的节点无关,一个节点如果处在一个复杂的关系网之中,Linux内核链表也很容易就可以解决,只需要在节点中镶嵌更多的“小结构体”即可,如图所示。
Linux笔记 --- 传统链表 传统的双向循环链表概念简单,操作方便,但存在有致命的缺陷,用一句话来概括就是:每一条链表都是特殊的,不具有通用性。换句话说,对于每一种不同的数据,所构建出来的传统链表都是跟这些数据相关的,所有的链表操作函数也都是数据相关的,换一种数据节点,则所有的操作函数都需要一一重写编写,这种缺陷对于一个具有成千上万种数据节点的工程来说是灾难性的,是不可接受的。对链表的操作,最基本的就是初始化空链表、创建新节点、插入节点、删除节点、移动节点、查找节点和遍历链表,下面先给出节点的设计代码,然后针对以上所述的操作各个击破。
Linux笔记 --- 高级议题 一般而言由于项目中文件较多所以建议用不同的文件夹存放不同类型的文件二进制的可执行文件用户自己写的头文件: 源文件那么在头文件和源文件分开放的时候要怎么编译呢因为很多头文件可能有很多其他头文件引用,因此为防止重定义要在头文件中加上下面的代码。
Linux笔记 --- 组合数据类型 简单的定义结构体的方法结构体中可以存放除了函数以外的任何数据类型的数据,在创建结构体时student被称为结构体模板名称,在c语言中设计者们想让我们使用结构体就跟使用普通变量无差别,因此结构体可以执行普通变量的所有操作,在此做一个示例上面的例子几乎将结构体的所有操作进行了一遍,因为结构体一般来说比较大,因此我们一般在函数调用结构体时传入地址以提高效率。
Linux笔记 --- 内存管理 域,对比其他区域的内存则不然,比如栈内存,栈的特点就是临时分配临时释放,一个变量如果是局部变量,他就会被定义在栈内存中,一旦这个局部变量所在的函数退出,不管你愿不愿意该局部变量也就会被立即释放,再如静态数据,他们都被存储在数据段,如前所述,这些变量将一直占用内存直到进程退出为止。堆内存的生命周期是:从malloc( )/calloc( )/realloc( )开始,到free( )结束,其分配和释放完全由我们开发者自定义,这就给了我们最大的自由和灵活性,让程序在运行的过程当中,以最大的效益使用内存。