ubuntu安装mysqlite3 -- modbus

源码

https://blog.csdn.net/wuyuxing24/article/details/48758927

安装 sqlite3

要安装sqlite3,可以在终端提示符后运行下列命令:
sudo apt-get install sqlite3
检查版本
sqlite3 -version

#sqlite3 -version
3.11.0 2016-02-15 17:29:24 3d862f207e3adc00f78066799ac5a8c282430a5f

SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说
没有独立的维护进程,所有的维护都来自于程序本身。
在python中,使用sqlite3创建数据库的连接,当我们指定的数据库文件不存在的时候
连接对象会自动创建数据库文件;如果数据库文件已经存在,则连接对象不会再创建
数据库文件,而是直接打开该数据库文件

连接对象可以是硬盘上面的数据库文件,也可以是建立在内存中的,在内存中的数据库
执行完任何操作后,都不需要提交事务的(commit)

创建在硬盘上面: conn = sqlite3.connect('c:\\test\\test.db')
创建在内存上面: conn = sqlite3.connect('"memory:')

https://www.cnblogs.com/hongten/p/hongten_python_sqlite3.html

redis

另外,ConnectionPool还支持通过URL来构建。URL的格式支持有如下3种:

redis://[:password]@host:port/db
rediss://[:password]@host:port/db
unix://[:password]@/path/to/socket.sock?db=db
这3种URL分别表示创建Redis TCP连接、Redis TCP+SSL连接、Redis UNIX socket连接。我们只需要构造上面任意一种URL即可,其中password部分如果有则可以写,没有则可以省略。下面再用URL连接演示一下:

url = ‘redis://:foobared@localhost:6379/0’
pool = ConnectionPool.from_url(url)
redis = StrictRedis(connection_pool=pool)

Python操作Redis,你要的都在这了!
https://cloud.tencent.com/developer/article/1151834

mysql

Ubuntu 安装mysql和简单操作
  ubuntu上安装mysql非常简单只需要几条命令就可以完成。

1. sudo apt-get install mysql-server

2. apt-get isntall mysql-client

3. sudo apt-get install libmysqlclient-dev

安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功:

sudo netstat -tap | grep mysql

通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。

登陆mysql数据库可以通过如下命令:

mysql -u root -p

-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。

http://www.cnblogs.com/zhuyp1015/p/3561470.html

线程池原理并用C语言实现

线程池的目的是为了减少线程创建、销毁所带来的代价,当有非常多的任务需要独立的线程去做时,可以使用线程池,从线程池中获取线程来处理一个个任务。
本文就来实现一个线程池。实现环境为Linux操作系统,采用C语言实现pthread线程的线程池。
线程分配设计:

线程池中的每个子线程都是等价的。我们用线程信号量来控制子线程和任务的分配问题。设置一个信号量来表示任务队列中的任务资源。每个子线程都会处于死循环中,每轮循环首先等待一个任务资源信号量,当等到之后,互斥地从任务队列中摘取一个任务结点,任务结点中记录着该任务所要执行的函数指针及其参数。之后子线程开始执行该任务。执行完之后释放一个信号量并进入下一轮循环。当没有信号量小于1时,子线程将会阻塞。

因此一个任务由哪一个线程来执行,这要看哪个线程能够获取到对应的信号量资源。

具体实现:

任务队列由双向链表构造,每个节点包含一个任务的函数指针和参数指针。

一般一个简单的线程池有下列组件:

线程池管理器(ThreadPoolManager):用于创建并管理线程池
工作线程(WorkThread): 线程池中线程
任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。
任务队列:用于存放没有处理的任务。提供一种缓冲机制。

我们知道应用程序创建一个对象,然后销毁对象是很耗费资源的。创建线程,销毁线程,也是如此。因此,我们就预先生成一些线程,等到我们使用的时候在进行调度,于是,一些"池化资源"技术就这样的产生了。

用C写一个web服务器(二) I/O多路复用之epoll

https://www.imooc.com/article/details/id/22260

int socket(int domain, int type, int protocol);
的第三个参数
这里指使用tcp协议
根据
include/winsock2.h文件
有以下定义
/*

  • Protocols
    /
    #define IPPROTO_IP 0 /
    dummy for IP /
    #define IPPROTO_ICMP 1 /
    control message protocol /
    #define IPPROTO_IGMP 2 /
    internet group management protocol /
    #define IPPROTO_GGP 3 /
    gateway^2 (deprecated) /
    #define IPPROTO_TCP 6 /
    tcp /
    #define IPPROTO_PUP 12 /
    pup /
    #define IPPROTO_UDP 17 /
    user datagram protocol /
    #define IPPROTO_IDP 22 /
    xns idp /
    #define IPPROTO_ND 77 /
    UNOFFICIAL net disk proto /
    #define IPPROTO_RAW 255 /
    raw IP packet */
    #define IPPROTO_MAX 256
    所以 参数protocol用来指定socket所使用的传输协议编号可以有以上几种
网络编程IPPROTO_IP和IPPROTO_TCP

socket函数:
int socket(int domain, int type, int protocol); 中的protocol 定义如下:
#define IPPROTO_IP 0 /* dummy for IP /
#define IPPROTO_ICMP 1 /
control message protocol /
#define IPPROTO_IGMP 2 /
internet group management protocol /
#define IPPROTO_GGP 3 /
gateway^2 (deprecated) /
#define IPPROTO_TCP 6 /
tcp /
#define IPPROTO_PUP 12 /
pup /
#define IPPROTO_UDP 17 /
user datagram protocol /
#define IPPROTO_IDP 22 /
xns idp /
#define IPPROTO_ND 77 /
UNOFFICIAL net disk proto /
#define IPPROTO_RAW 255 /
raw IP packet */
#define IPPROTO_MAX 256
TCP/IP协议族把所有的TCP/IP系列协议归类到四个抽象层中
应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
传输层:TCP,UDP

网络层:IP,ICMP,OSPF,EIGRP,IGMP

数据链路层:SLIP,CSLIP,PPP,MTU

具体结构如下:
HTTP等(应用层)
|
TCP/UDP (运输层)
|
IP(链路层)
|
接口层

book

02/05/2017 12:00上午 目录 Android编程权威指南(第1版)+(第2版)PDF+源码
02/11/2017 12:00上午 目录 Head First设计模式PDF高清完整中文版
02/16/2017 12:00上午 目录 Java 8实战(Java 8 in Action) 高清晰PDF中文完整版+随书源码
02/13/2017 12:00上午 目录 JavaEE开发的颠覆者 Spring Boot实战 PDF清晰完整版+随书源码
02/20/2017 12:00上午 目录 Java多线程设计模式(PDF清晰扫描版带完整书签)+源代码
02/12/2017 12:00上午 目录 Linux高性能服务器编程清晰PDF+源码
02/23/2017 12:00上午 目录 Redis入门指南(第2版)
02/21/2017 12:00上午 目录 TCP-IP高效编程:改善网络程序的44个技巧 PDF中文版带书签
02/01/2017 12:00上午 目录 Ubuntu 16.04下安装基于Faeanza蓝色图标主题
02/02/2017 12:00上午 目录 Ubuntu 16.04下安装蓝色图标主题Obsidian
02/15/2017 12:00上午 目录 第一行代码 Android(第2版)PDF高清晰完整版+源码
02/28/2017 12:00上午 目录 疯狂Java实战演义 高清晰PDF+光盘源码
02/11/2017 12:00上午 目录 基于Oracle的SQL优化(完整版) 崔华 PDF扫描版
02/01/2017 12:00上午 目录 剑指Offer 名企面试官精讲典型编程题清晰PDF+源码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Ubuntu 20.04上安装ORB-SLAM3,你需要按照以下步骤进行操作: 1. 首先,确保你的系统满足ORB-SLAM3的安装要求。根据引用中提到的环境说明,你需要在虚拟机VMware上安装Ubuntu 20.04,并且有一个搭载Win10(i5-8500)的主机。 2. 接下来,你需要安装OpenCV 3.3.5。根据引用中的指示,你可以通过以下命令来安装所需的依赖项: ``` sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo apt update sudo apt install libjasper1 libjasper-dev sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev ``` 3. 现在,你需要下载并编译ORB-SLAM3。按照引用中提到的步骤,进入ORB-SLAM3的主目录,打开终端,并执行以下命令: ``` sudo ./bootstrap.sh sudo ./b2 install ``` 4. 最后,你需要安装Pangolin图形库以及它的依赖项。根据引用中的指示,你可以通过以下命令来安装所需的依赖项: ``` sudo apt install libgl1-mesa-dev sudo apt install libglew-dev sudo apt install libpython2.7-dev sudo apt install pkg-config sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols ``` 完成以上步骤后,你应该成功地在Ubuntu 20.04上安装了ORB-SLAM3。请确保按照引用内容所列的正确顺序执行每个步骤,并确保你的系统满足所需的依赖项。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值