![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式编程
风翼随心
一个渴望学习嵌入式的嵌入式小白
展开
-
基于Linux系统的流量控制程序的C语言代码
基于Linux系统的流量控制程序的C语言代码mytbf.h头文件ifndef MYTBF_H_#define MYTBF_H_typedef void mytbf_t;mytbf_t *tbf_init(int bits,int max);int gettoken(mytbf_t *tbf,int tknum);int returntoken(mytbf_t *tbf,i...原创 2018-08-11 16:56:19 · 1359 阅读 · 0 评论 -
Linux系统的bash程序
Linux系统的bash程序—对于标准库和系统库函数的应用#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <pwd.h>#include <unistd.h>#include <glob.h>#include <str...原创 2018-11-05 11:45:11 · 239 阅读 · 0 评论 -
数据结构的线性关系
数据结构的线性关系线性关系:里面的每一个元素都是平等的,每个节点至多有一个前驱和一个后继。头部没有前驱,尾部没有后继。其结构类似于一维数组的结构。如下图所示:顺序存储结构删除操作:对某一元素进行删除,其后面的元素都要往前移动一个单位。浪费CPU资源插入操作:对数组中某一单元进行插入,后面的元素都要往后移动一个单位。操作麻烦。缺点:一次空间分配,大小恒定,如果空间不够,无解;如果没有用...原创 2018-10-21 22:11:40 · 2646 阅读 · 0 评论 -
Linux系统的服务器并发编程
在网络通信中,大部分情况都会使用TCP协议的网络通信方式,毕竟TCP协议的通信方式安全性高、数据不易丢失、还能远距离传输数据。但TCP协议并不能像UDP协议一样本身就具有并发特性,所以在编写TCP协议网络通信中,通常采用多路复用和多线程/多进程的方式实现服务器的并发,即一个服务器同时服务多个客户端。多路复用多路复用的相关函数会在程序中有注释。实现多路复用的程序如下: 头文件com.h...原创 2018-08-24 17:52:57 · 651 阅读 · 0 评论 -
基于Linux系统的一对多网络通信
例、编写一个从气象站获取天气信息的程序。气象站发送数据到服务器,服务器存储气象站发来的天气信息,客户端向服务器发出请求,获取天气信息;服务器就将天气信息发送给客户端。思路:气象站、服务器、客户端三者各有一个程序,气象站程序主要就向服务器发送天气信息。天气信息用一个结构体封装起来,结构体成员主要有消息类型(用于服务器区分是气象站的消息还是客户端的消息)、温度、湿度等天气状况,在这里只是模拟三...原创 2018-08-24 16:19:43 · 715 阅读 · 0 评论 -
基于Linux系统sqlite3数据库的学生信息管理系统
学生信息管理系统表: 学生信息表 入学的时候 --学号[主关键字] 姓名 性别 班级 籍贯 考试成绩表 考试的时候生产的 --学号[] 姓名 成绩 班级 教师表 老师 --名字 工号 教龄 班级功能: 学生信息添加 删除 根据姓名查找 教师信息的 添加 ...原创 2018-08-30 22:45:48 · 3328 阅读 · 0 评论 -
Linux系统的数据库编程举例
sqlite3_exec.c()函数的简单应用#include <stdio.h>#include <sqlite3.h>/* exec每找到一条记录,都会 调用该函数, 通过将记录 通过参数传给形参变量*/int sqlite3_cb_fun(void *para, int f_num, char **f_value, char **f_name)...原创 2018-08-30 22:04:39 · 667 阅读 · 0 评论 -
Linux系统的广播和组播
广播广播:在一个局域网内部,所有的终端都能够收到数据包。使用广播的发送数据,会使处于同一个局域网内部的所有用户都必须接收到数据,用户不能拒绝。 注意:在使用广播和组播时,发送方和接收方都要处于同一个局域网内。因为广播和组播只能在一个局域网内部发送数据。广播和组播与一般网络通信有所不同,网络通信传输的是数据包;广播传输的数据叫广播包,组播传输的数据叫组播包。 原理: 发送方发送广播包到交换机...原创 2018-08-27 21:46:20 · 2002 阅读 · 0 评论 -
Linux系统网络编程——套接字一对一通信
例程、用socket套接字实现进程间的一对一通信服务器端程序:server.c#include &amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;amp;lt;sys/types.h&amp;amp;amp;amp;amp;amp;gt; /* See NOTES */#in转载 2018-08-13 23:27:49 · 274 阅读 · 0 评论 -
Linux系统的多线程编程
多线程线程概念线程可以看做是一个正在运行的函数,一个进程中至少有一个函数运行,那么也就是说一个进程至少有一个线程。在函数中创建出来的线程,彼此之间是兄弟关系。posix线程是一套线程标准,而不是一套实现。线程的标识pthread_t数据类型的线程标识符tid。在终端使用ps axm命令查看线程信息。 pthread_equal(tid1,tid2):比较两个线程标识,相...原创 2018-08-12 22:45:12 · 383 阅读 · 0 评论 -
Linux进程间通讯之信号量
信号量信号量用于进程同步互斥。信号量可以直接理解成计数器,信号量会有初始值&gt;0,每当进程申请使用信号量,通过P操作来对信号量进行-1操作。当计数器(信号量)减到0时说明没有资源了,其他进程要访问就必须在临界区外等待,该进程执行完临界区操作之后,就会执行V操作来对信号量进行+1操作。 临界区:只能被一个进程同时使用(不可多个进程共享),要用到互斥。(1)创建信号量semget...原创 2018-08-12 22:28:26 · 123 阅读 · 0 评论 -
进程间通信——消息队列
消息队列(1)创建/打开消息队列msgget(key,msgflg):成功返回消息队列id,失败时返回-1。 key:和消息队列所关联的key值,key值由ftok()函数的返回值得到。 msgflg:标志位,IPC_CREAT|0666|O_EXCL。 IPC_CREAT :表示创建消息队列;0666表示用户对文件操作的权限;O_EXCL:如果创建的消息队列存在则出错,可省略不写。...原创 2018-08-12 21:55:49 · 167 阅读 · 0 评论 -
进程间的通信——共享内存
共享内存两个进程共享同一块内存,即同一块物理内存被映射到两个进程各自的进程地址空间中。所以两个进程都可以对这一块共享内存进行读写操作,同时可以扫描到共享内存中的数据。用C语言实现两个进程(程序)之间的单工通信,一方发送信息,一方接收信息。代码如下: shma.c程序:用于发送数据#include <stdio.h>#include <stdlib.h>#i...原创 2018-08-12 21:40:01 · 176 阅读 · 0 评论 -
有限状态机的编程思想
在C语言编程中,有限状态机是一种编程思想。在编程过程中,也可以把程序分为几个状态,比如读数据状态、写数据状态、异常状态、超时状态等,用程序实现几个状态间的互相转换。使用有限状态机的思想编程,可以使自己的程序变得更加灵活,足够应对程序编写出来后更改需求的情况。一般只要该需求,整个程序都要重新写,若用上有限状态机的思想就可以很大程度上地应对该需求的情况。在程序中,程序可以大概按下图的模式去编写:#...原创 2018-11-13 22:54:32 · 1116 阅读 · 0 评论