自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 进程和线程的退出

孤儿进程,僵尸进程,进程及线程的退出方式,如何判断进程或线程是否退出

2022-06-29 08:48:35 1212 4

原创 socket阻塞和非阻塞模式

socket阻塞阻塞和非阻塞模式

2022-06-26 16:35:03 6262

原创 大小端字节序

大小端字节序

2022-06-24 16:35:34 703

原创 gcc编译动态库和静态库

gcc常见选项和动态库静态库

2022-06-24 15:35:05 2955

原创 printf不定长参数原理

printf函数实现不定长参数原理

2022-06-24 15:11:08 1037

原创 C语言 函数指针与回调函数

函数指针与回调函数,附代码说明

2022-06-21 19:19:30 126

原创 Ubuntu18.04交叉编译QT程序在树莓派上运行

在Qt上写了一个程序使用Qt的MQTT模块,实现图形化实时显示温度,并提供UI接口更改网络设置。程序的目标平台是树莓派,所以需要用到交叉编译。本篇文章将介绍如何在虚拟机Ubuntu18.04环境下交叉编译Qt程序一、下载交叉编译器这里直接使用apt-get install安装交叉编译工具链,免去了对交叉编译工具链的一些环境配置执行命令sudo apt-get install gcc-arm-linux-gnueabihf安装gcc交叉编译套件执行命令sudo apt-get install.

2022-04-12 19:14:06 7311 2

原创 MQTT客户端(基于mosquitto库)上报温度到腾讯云

Linux C MQTT上报温度到腾讯云(基于mosquitto库)一、创建产品1.进入腾讯云官网,登陆或注册账号2.进入控制台3.鼠标滑到云产品,进入物联设备服务中的物联网通信4.点击创建新产品,现在我们来创建一个上报温度产品5.产品创建信息如下,点击确定二、创建设备1.我们已经创建好了一个产品,如下,现在来创建设备。(设备是产品的实例,一个产品下可以有多个设备。)2.进入产品页面后点击设备列表,此时该产品下还没有任何设备,点击添加新设备,我们来创建一个设备来实现温度上报的功

2022-01-01 14:19:39 4492 1

原创 MQTT客户端(基于mosquitto库)上报温度到华为云

Linux C MQTT客户端上报温度到华为云一、创建产品1.进入华为云官网,右上角点击注册或登录2.登录华为云账号后,点击右上角控制台进入控制台3.鼠标移到左上角展开导航栏4.找到IoT物联网,点击下面的设备接入IoTDA5.切换控制台的位置为北京四6.点击产品,进入产品页面,然后点击创建产品,我们先来创建一个产品7.产品创建信息如下,点击确认,就创建好了一个名为HGT-DS18B20的产品,点击查看二、创建产品功能1.现在我们的产品还没有任何功能,点击自定义模型,我们

2021-11-20 10:51:46 4168 1

原创 MQTT客户端(基于mosquitto库)上报温度到阿里云

Linux C MQTT客户端上报温度到阿里云一、创建产品1.进入阿里云官方页面,右上角点击登陆或注册阿里云账号2.登录阿里云账号后点击右上角进入控制台3.鼠标移到左上角展开导航4.进入在物联网IOT的物联网平台5.点击产品,在产品页面点击创建产品6.新建产品参数如下,自定义产品名称,选择直连设备,点击确认二、定义产品功能1.创建完产品后出现以下界面,点击前往定义物模型2.现在我们的产品还没有任何功能,点击功能定义下的编辑草稿,我们来创建一个功能3.点击添加标准功能4

2021-11-08 20:11:11 3838 1

原创 sqlite3_exec及其回调函数

一)sqlite3_exec1.头文件和函数原型#include "sqlite3.h"int sqlite3_exec(sqlite3*, const char *sql, int (*callback)(void*para,int argc,char**argv,char**argv_name), void *para,char **errmsg)2.说明第一个参数sqlite3*是打开的数据库;第二个参数const char *sql是要执行的sql语句;第三个参数int (*cal

2021-10-31 17:16:44 5243

原创 void *总结

写在前面:我们更常见的是void的两种使用,如下:1)void 函数名( 参数 );2)返回值 函数名( void );第一种是在函数没有返回值时用void限定,第二种是函数不接受参数时用void限定,如果说void是“拒绝”,那么void *就是“接受”一)void *是什么?void *是一种无类型的指针,用来存放地址,在32位系统上占4字节空间,在64位系统上占8字节空间,void *的“无类型”让程序的编写有了极大的灵活性。二)void *有什么作用?void *的常见使用场景与vo

2021-10-28 15:42:04 3018

原创 inet_aton、inet_ntoa、inet_pton和inet_ntop

inet_aton、inet_ntoa、inet_pton和inet_ntop都是用于IP地址与大端网络字节序二进制数字相互转换的函数不同的是inet_aton和inet_ntoa只支持ipv4类型的地址转换,而inet_pton和inet_ntop支持ipv4和ipv6类型的地址转换inet_aton头文件和函数原型#include<sys/scoket.h>#include<netinet/in.h>#include<arpa/inet.h>int i

2021-10-28 14:42:15 2955

原创 select、poll和epoll形象化理解与对比

Linux下select、poll、epoll多路复用服务器对比标题标题

2021-10-21 20:59:50 327

空空如也

空空如也

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

TA关注的人

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