- 博客(24)
- 资源 (2)
- 收藏
- 关注
原创 线程、线程信号量等常用函数小结
线程: 1.pthread_create作用:创建一个线程原型:int pthread_create(pthread_t *thread, pthread_attr_t *attr, (void *)(start_routine)(void *), (void *arg))参数:thread:线程标识符 attr: 线程属性
2016-10-29 21:03:00 287
转载 生产者消费者问题
【问题描述】一群生产者进程在生产产品,一群消费者进程在消费产品。为了生产者消费者进程之间能够并发执行,在两者之间设置了一个具有n个缓冲区的缓冲池,每次生产的进程都会被放入到缓冲池中,消费者每次从缓冲池中取走产品。【分析】 这个过程中既有互斥关系,又有同步关系。互斥关系:每一时刻只有一个进程在访问 缓冲区(或放数据或取数据)。同步关系:当
2016-10-29 08:13:31 439
转载 IO多路复用之select函数详解
IO复用 我们首先来看看服务器编程的模型,客户端发来的请求服务端会产生一个进程来对其进行服务,每当来一个客户请求就产生一个进程来服务,然而进程不可能无限制的产生,因此为了解决大量客户端访问的问题,引入了IO复用技术。 即:一个进程可以同时对多个客户请求进行服务。 也就是说IO复用的“介质”是进程(准确的说复用的是select和poll,因为进程也是靠调用select和p
2016-10-29 08:09:32 750
原创 进程通信的一些基本概念
1.目的:(1)数据传输:一个进程需要将他的进程数据发送给另一个进程。(2)资源共享:多个进程之间共享同样的资源。(3)通知事件:一个进程需要向另一个或一组进程发送消息,通知他们发生了某种事件。(4)进程控制:有些进程希望完全控制另一个进程的执行(如debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变。 2.管道通信(1)管道是单向
2016-10-26 23:58:39 587
原创 信号量相关函数整理
信号量相关函数整理 1.semget作用:创建信号量原型:int semget(key_t key, int nsems, int semflg)参数:key 信号量键值 nsems 需要创建的信号量数目,通常取一个 semflg 同open一样的权限返回值:成功信号量标识符 出错 -1
2016-10-25 19:34:31 1174
原创 消息队列相关函数总结
消息队列1.msgget作用:创建消息队列原型:int msgget(key_t key, int msgflag)参数:key:键值 IPC_PRIVATE msgflag:权限 返回值:成功:消息队列ID 出错:-1头文件:sys/tpes.j sys/ipc.h
2016-10-24 23:30:43 1466
原创 共享内存
1.共享内存a.操作步骤(1)创建共享内存(2)映射共享内存(3)分离共享内存(4)控制、删除共享内存 b.相关函数1.shmget作用:在内核中创建共享内存原型:int shmget(key_t key, size_t size, int shmflg)参数:key键值 size创建内存的大小 shmfl
2016-10-23 22:12:38 258
原创 进程间通信相关函数
一、进程间的通信 1.pipe功能:创建无名管道原型:int pipe(int fds[2])参数:新建两个文件描述符,由fds数组返回 fds[0]:用于读管道 fds[1]:用于写管道头文件:unistd.h返回值:成功:0 失败:-1 2.mkfifo功能:创建有名
2016-10-22 23:54:17 310
原创 打印全局、局部、static变量的地址,确定其存储位置
#include int gol_uninit_var;int gol_init_var = 0;void live_var(){ int liv_var; int static liv_sta_var; printf("liv_var = %p\n", &liv_var); printf("liv_sta_var = %p\n", &liv_s
2016-10-21 23:44:38 792
转载 守护进程
Linux系统中的守护进程是一种运行在后台的进程。而守护进程,也就是通常说的Daemon进程。它通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。linux大多数服务器进程就是用守护进程实现的,例如web服务。守护进程常常在系统引导装入时启动,在系统关闭时终止。守护进程最大的特点是运行在后台,与终端无连接,除非特殊情况下,用户不能操作守护进程。 在Linux中,每一个系统与
2016-10-18 23:58:35 240
原创 栈与堆栈的区别
栈和堆栈是一个概念。队列先进先出,在队头做删除操作,在队尾做插入操作。栈先进后出,在栈顶做插入和删除操作。堆和它们不同,不存在是先进后出还是先进先出。1.栈(Stack)是操作系统在建立某个进程时或者线程(在支持多线程的操作系统中是线程)为这个线程建立的存储区域,该区域具有FILO的特性,在编译的时候可以指定需要的Stack的大小。在编程中,例如C/C++中,所有的局部变量都...
2016-10-17 23:33:32 40486 7
原创 向一个文件写入信息并读出写入另一个文件
/**************************************************************************** File Name: 7.fread_from_s.c* Function : 1) * 2) * Author : bing * Created Time: 2016年10月16日 星期日 10时11分5
2016-10-16 23:42:38 496
原创 创建两个文件,并将文件中对应的数字相加
手动创建两个文本文件text1.txt,text2.txt,要求编程创建text3.txt,实现text1.txt和text2.txt文件中除去首行和末尾,其余对应的数据相加,三个文本的内容如下text1.txtbegin10 11 1220 21 2230 31 32end text2.txtbegin15 16 1725 26 2735 36 37end t
2016-10-16 02:40:22 1397
原创 PCF8951读程序
unsigned char AD_Read(){ unsigned char tmp; iic_start(); iic_send_byte(0x90); if(0 == ack) { return ERR; } iic_send_byte(0x40); if(0 == ack) { return ERR; } iic_start(); iic
2016-10-13 00:00:54 1381
原创 用51实现码表
#include #include "./delay/delay.h"#define KEYPORT P1 //P0口#define TIMEPORT P0 //P0口#define M_H_TIME 60 //1min = 60s, 1hour = 60min#define DAY_TIME 24 //1day = 24hsbit bit_select = P2^
2016-10-12 00:37:07 487
原创 消息队列及其操作_读书笔记_8
4.5消息队列及其操作4.5.1消息队列(1)使用消息队列可在任务之间传递多条消息。(2)消息队列由三部分组成:事件控制块、消息队列和消息。1.消息指针数组(1)消息队列的核心是消息数组指针。(2) 消息队列主要参数:2.队列控制块(1)为了对消息指针数组进行有效的管理,ucos-II把消息指针数组的基本参数都记录在一个叫做队列控制块的结构中。 4.
2016-10-10 00:03:44 330
原创 消息邮箱及其操作_读书笔记_7
4.4消息邮箱及其操作4.4.1消息邮箱(1)任务与任务之间要传递数据,在存储器中建立一个数据缓冲区,将传递的的数据放到数据缓冲区,以此实现任务间的通信。(2)消息邮箱是在两个需要通信的任务之间通过传递数据缓冲区指针的方法来通信的。 4.4.2消息邮箱的操作1.创建消息邮箱(1)调用函数:OSMboxCreate()原型:OS_EVENT *OSMoxCreat
2016-10-08 23:18:06 1776
原创 DS1302地址
#define ds1302_sec_add 0x80 #define ds1302_min_add 0x82 #define ds1302_hr_add 0x84 #define ds1302_date_add 0x86 #define ds1302_month_add 0x88 #define ds1302_day_add 0x8a #define
2016-10-07 23:50:23 923
原创 树的特点以及树的一些基本用语_学习笔记3
树的特点:1.子树不相交2.除了根节点外,每个结点有一个父结点3.一颗N个结点的树有N-1条边 树的一些基本用语1.结点的度:结点的子树的个数2.树的度:树的所有结点中的最大度数3.叶结点:度为0的结点4.父节点:有子树的结点是其子树的根结点的父结点5.子结点:父结点的下一个结点6.兄弟结点:具有同一父结点的结点
2016-10-05 23:32:47 696
原创 sx1308升压电路
sx1308升压电路非常简单,图中VCC为输入电压,12V为输出电压,控制输出电压的大小的是电阻R35和R36,Vout = Vref * (1 + R36 / R35).其中,Vref为反馈电压0.6V,R35最好为10K(详细资料见芯片手册)。
2016-10-04 23:15:54 23849 4
原创 编程练习,寻找字符串中的子串
#include #include #define MAX_SIZE 1024int my_strncmp(char *src, char *head, int len){ int i; for(i = 0; i < len; i++) { if(*(src + i) != *(head + i)) { return -1;
2016-10-03 23:35:17 422
原创 数据结构概念_学习笔记2
3.解决问题方法的效率,跟算法的巧妙程度有关如:计算多项式a(0) + x * a(1) + x ^2 * a(2) ... + x ^ (n - 1) * a(n - 1) + x ^ (n) * a(n)如果按原顺序计算,能算出来,但是势必会影响效率,改成如下方式计算,能大大提高运行效率。a(n - 2) + x( a(n - 1) + x * a(n) )/******
2016-10-02 22:58:30 217
原创 用c语言实现杨辉三角
#include void YangTraingle(int lines){ int i; int j; int yang_num[lines][lines]; for(i = 0; i < lines; i++) { for(j = 0; j <= i; j++) { if((0 == j) || (j
2016-10-01 23:33:21 639
Google JavaScript 编码规范指南
2017-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人