自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (2)
  • 收藏
  • 关注

原创 Template Method模式

在Template Method模式中,处理的流程被定义在父类中,而具体的处理则交给了子类。 组成模板的方法被定义在父类中,这些方法是抽象方法。在父类中调用抽象方法的方法称为模板方法。实现这些抽象方法的是子类。像这样在父类中定义处理流程的框架,在子类中实现具体处理的模式称为Template Method模式。类的一览表 名字 说明 AbstractDisplay...

2019-10-22 00:23:28 130

原创 escape(s, t)函数的实现

#include #include void escape(char *s, char *t);int main(void){ char *s = malloc(30); char *t = "what is your name?"; escape(s, t); printf("%s\n", t); printf("%s\n", s); return

2015-07-19 20:06:32 1051

原创 C专家编程学习笔记一

typedef和宏文本替换

2014-04-16 17:48:26 459

原创 电路基础

基本定理:基尔霍夫电压定律:电路中沿任一回路的所有电压的代数和为0(能量守恒)。基尔霍夫电流定律:流入一个节点的所有电流之和等于流出该节点的所有电流之和(电荷守恒)。叠加原理:线性电路的任一之路电流等于电路中每一个电源单独作用时(其余电源置零)在该之路产生的电流之和。戴维南定理:线性两端直流网络可以用一个电压源和一个电阻的串联支路来替代。诺顿定理:电路是由一个电流源和电阻的并联

2014-04-01 01:17:04 1198

原创 Linux 内核模块简介

Linux提供了这样一种机制,这种机制被称为模块。模块具有这样的特点:        模块本身不被编译入内核映像,从而控制了内核的大小。        模块一旦被加载,它就和内核中的其它部分完全一样。一、模块的组成       一个Linux内核模块主要由如下几个部分组成:       (1)模块加载函数       Linux 内核模块加载函数一般以__init标识声明。

2014-03-27 11:45:52 781

原创 UNIX高级环境编程读书笔记(chapter14)

第十四章  高级IO一、引言       本章内容包括非阻塞IO、记录锁、系统V流机制、I/O多路转接(select 和 poll函数)、readv和writev函数以及存储映射I\O,这些都称为高级I/O。二、非阻塞I/O       非阻塞I/O使我们可以调用open、read和write这样的I/O操作,并使这些操作不会永远阻塞。如果这种操作不能完成,则调用立即出错返回,表示

2014-03-26 20:15:52 679

原创 循环队列

一、定义队列结构体//typedef struct Queue{ int *pArray; int front; int rear;}QUEUE, *PQUEUE;//二、初始化队列&&void init_queue(PQUEUE pQueue){ pQueue->pArray = (int *)malloc(sizeof(int) * 10

2014-03-23 21:34:42 335

原创 栈的初始化、压栈,栈的遍历、出栈、清空栈

一、栈的初始化//////void init_stack(PSTACK pStack){ pStack->pTop = (PNODE)malloc(sizeof(NODE)); if (pStack->pTop == NULL) { printf("malloc failed!\n"); exit(-1);

2014-03-23 01:45:02 1824

原创 判断链表是否为空、求链表长度、插入新节点、删除节点、链表排序

一、判断链表是否为空//startbool is_empty(PNODE pHead){ if (pHead->pNext == NULL) { return true; } else { return false; } }//end二、求链表长度//startint length_list(PNODE pHead){

2014-03-22 03:06:41 1331

原创 链表的创建和遍历

/*链表的创建和建立*/1.定义一个节点的数据类型typedef struct Node{    int data;    struct Node *pNext;}NODE, *PNODE;2.在主函数里创建链表并对其进行遍历int main(void){    PNODE pHead = NULL; //struct N

2014-03-21 03:02:36 492

原创 UNIX高级环境编程读书笔记(chapter13)

第十三章    守护进程        守护进程也称精灵进程是生存期较长的一种进程,它们常常在系统自举时启动,关闭时才终止,因为它们没有控制终端,所以说它们是在后台运行的。        系统进程依赖于操作系统实现。父进程ID为0的进程通常是内核进程,它们作为系统自举过程的一部分而启动。一、编程规则       在编写守护进程程序时需遵循一些基本规则,以便防止产

2014-03-20 16:39:14 415

原创 UNIX高级环境编程读书笔记(chapter12)

第十二章  线程控制一、线程限制        与其它的系统限制一样,这些线程也可以通过sysconf函数进行查询。        与sysconf报告的其它限制一样,这些限制的使用是为了增强应用程序在不同的操作系统实现之间的可移植性。二、线程属性实例:以分离状态创建的线程#include "apue.h"#include int makethre

2014-03-19 18:58:47 435

原创 UNIX高级环境编程读书笔记(chapter11)

第11章 线程典型的UNIX进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把线程设计成在同一时刻能够做不止一件事情,每个线程处理各自独立的任务。(1)通过为每种事件类型的处理分配单独的线程,能够简化处理异步事件的代码。(2)多个进程必需使用操作系统提供的复杂机制才能实现内存和文件描述符的共享。(3)有些问题可以通过将其分解从而改

2014-03-19 10:36:14 352

原创 UNIX高级环境编程读书笔记(chapter10)

chapter 10  信号信号就是软件中断。

2014-03-16 23:45:20 671

原创 UNIX高级环境编程读书笔记(chapter9)

chapter 9进程关系   当系统自举时,内核创建进程ID为1的进程,Init进程。Init进程使系统进入多用户状态。Init进程读文件/etc/ttys,对每一个允许登陆的终端设备,Init调用一次fork,它所生成的子进程则执行getty程序。getty为终端设备调用open函数,以读写方式将终端打开。一旦设备被打开,则文件描述符0、1、2就被设置到该设备。然后getty输出“

2014-03-13 14:13:42 494

原创 UNIX高级环境编程读书笔记(chapter8)

第八章 进程控制每个进程都有一个非负整型表示唯一的进程ID.虽然是唯一的,但是进程ID可以重用,当一个进程终止后,其进程ID就可以再次使用了.ID为0的进程通常是调度进程,常常是交换进程,是内核的一部分,也被称为系统进程.进程ID1通常是init进程,在自举过程结束时内核调用.8.1.由fork创建的新进程被称为子进程.fork函数被调用一次单返回两次.两次返回的唯一区别是子进程的返回值是

2014-03-11 10:40:50 529

原创 UNIX高级环境编程读书笔记(chapter7)

7.1 main函数C程序总是从main函数开始执行。7.2 进程终止有8种方式是进程终止(1)从main返回(2)调用exit()(3)调用_exit或_Exit(4)最后一个线程从启动例程返回(5)最后一个线程调用pthread_exit异常终止有三种方式:(6)调用abort(7)接到一个信号并终止(8)最后一个线程对取消请求做

2014-03-11 02:11:13 498

原创 UNIX高级环境编程读书笔记(chapter5)

5.9 二进制IO下列两个函数执行二进制IO操作:fread(),fwrite().(1)读或写一个二进制数组;(2)读或写一个结构;返回:读或写的对象数5.10 定位流有三种方法定位标准IO流(1)ftell和fseek函数(2)ftello和fseeko函数(3)fgetpos和fsetpos函数5.11 格式化IO5.11.1  格

2014-03-11 02:03:49 407

原创 UNIX高级环境编程读书笔记(chapter4)

Chapter 4  文件和目录4.0.给定一个pathname  (1)stat函数返回一个与此命名有关的信息结构.  (2)fstat函数获得已在描述符filedes上打开的文件的有关信息.           (3)lstat函数类似于stat,但是当命名的文件是一个符号链接时,lstat返回该符号链接的有关信息,而不是由该符号链接引用的文件的信息.4.1文件类型(1

2014-03-11 02:02:19 462

原创 UNIX高级环境编程读书笔记(chapter1-3)

UNIX:程序的执行实例被称为进程;UNIX 环境高级编程:1.调用open函数可以打开或创建一个文件.2.可以调用creat函数创建一个新文件.3.close函数关闭一个打开的文件.4.lseek函数:每个打开的文件都有一个与其相关联的"当前文件偏移量".他通常是一个非负整数        Ex1:测试能否对标准输入设置偏移量:#include "ap

2014-03-11 01:58:06 512

原创 C语言学习笔记

1.修改变量的存储类型并不表示修改该变量的作用域;2.当extern关键字用于源文件中一个标识符的第一次声明时,它指定该标识符据有external链接属性。但是,如果它用于该标识符的第二次或以后的声明时,它并不会更改由第一次声明所指定的链接属性。3. int const *pci  一个指向整形常量的指针, 可以修改指针的值,但不能修改它所指向的值    int *const cp

2014-03-10 18:45:39 463

原创 term.h 和 curses.h (redhat 6.4)

1.环境:VMware workStation -> Redhat 6.42.问题:make badterm 之后报错:badterm.c:2:18: error: term.h: No such file or directorybadterm.c:3:20: error: curses.h: No such file or directorymake: *** [bad

2013-11-19 00:49:41 1384

转载 如何学习嵌入式(转载)

如何学习嵌入式2008年8月21日 22:59:13 发布:shadowofsnow 学习嵌入式首先要明确这么几点:(1)首先学嵌入不是为了跟风,而是为了逐浪。不是要看大家都去做 这一行才去做。是真的喜欢,这样才能精,才能做到“逐浪”! (2)成功的历程是漫长、艰辛的,要有一颗艰韧不拔的心。 (3)文章中说的学习过程和资料大致差不多。但可惜的是在我花了很 长时间入门后才发现这篇文章,要不那短时间会

2013-11-18 00:59:19 678

Tftpd64_SE-4.52-setup.exe

Tftpd64_SE-4.52-setup windows tftp工具 可作为windows10 tftp服务器使用

2019-12-30

ch452的使用方法

CH452 是数码管显示驱动和键盘扫描控制芯片。CH452内置时钟振荡电路,可以动态驱动8 位数 码管或者64 只LED,具有BCD 译码、闪烁、移位、段位寻址、光柱译码等功能;同时还可以进行64 键的键盘扫描;CH452 通过可以级联的4 线串行接口或者2 线串行接口与单片机等交换数据;并且可 以对单片机提供上电复位信号。

2015-01-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除