09 2020 档案
摘要:短路现象1 比如有以下表达式 a && b && c 只有a为真(非0)才需要判断b的值; 只有a和b都为真,才需要判断c的值。 举例 求最终a、b、c、d的值。 main() { int a,b,c,d; a = 0; b = 1; c = 2; d = a++ && b++ && --c; pr
阅读全文
摘要:sqlite3编程接口非常多,对于初学者来说,我们暂时只需要掌握常用的几个函数,其他函数自然就知道如何使用了。 数据库 本篇假设数据库为my.db,有数据表student。 | no | name |score | |--|--|--| | 4 | 一口Linux|89.0 | 创建表格语句如下:
阅读全文
摘要:SPI概述 Serial Peripheral interface 通用串行外围设备接口 是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 SPI,是一种高速的,全双工,同步的
阅读全文
摘要:在《嵌入式数据库sqlite3命令操作基础篇-增删改查,小白一文入门》一文中讲解了如何实现sqlite3的基本操作增删改查,本文介绍一些其他复杂一点的操作。比如where、order by、having、like、函数等用法。 数据库准备 新建数据库,company.db。 设计一个表格employ
阅读全文
摘要:前面文章链接如下: 《从0实现基于Linux socket聊天室-多线程服务器模型-1》 《从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2》 《从0实现基于Linux socket聊天室-实现聊天室的登录、注册功能-3》 上文中,我们基于多线程的框架,实现了注册和登录的
阅读全文
摘要:上一篇我们已经讲了如何搭建一个多线程的服务器模型,可以支持多个客户端同时连接服务器,本篇我们来实现多个客户端,如何实现向服务器注册信息,并实现登录的功能。 数据结构 接着上一篇的实例代码继续增加功能。 要实现注册和登录功能,那么我们就必须要让服务器和客户端在交互数据包的时候按照统一的格式收发信令。
阅读全文
摘要:根据 《0 基于socket和pthread实现多线程服务器模型》所述,server创建子线程的时候用的是以下代码: pconnsocke = (int *) malloc(sizeof(int)); *pconnsocke = new_fd; ret = pthread_create(&tid,
阅读全文
摘要:前言 Socket在实际系统程序开发当中,应用非常广泛,也非常重要。实际应用中服务器经常需要支持多个客户端连接,实现高并发服务器模型显得尤为重要。高并发服务器从简单的循环服务器模型处理少量网络并发请求,演进到解决C10K,C10M问题的高并发服务器模型。 C/S架构 服务器-客户机,即Client-
阅读全文
摘要: 信号量概念 信号量本质上是一个计数器(不设置全局变量是因为进程间是相互独立的,而这不一定能看到,看到也不能保证++引用计数为原子操作),用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享
阅读全文
摘要:曾经我一直以为自己C语言学的还挺好的,直到看到这几个例子。 例1 首先来看一下,大师是如何求圆周率的,一口君实在词穷,first卧槽。 #include <stdio.h> long a=10000,b=0,c=10000,d,e,f[10001],g; void main() { for(;b !
阅读全文
摘要:背景 由于在多处理器环境中某些资源的有限性,有时需要互斥访问(mutual exclusion),这时候就需要引入锁的概念,只有获取了锁的任务才能够对资源进行访问,由于多线程的核心是CPU的时间分片,所以同一时刻只能有一个任务获取到锁。 内核当发生访问资源冲突的时候,通常有两种处理方式: 一个是原地
阅读全文