- 博客(22)
- 收藏
- 关注
原创 Linux网络编程-HTTP编程
Linux网络编程(HTTP协议)Linux网络编程----http网络编程之http服务器(C/C++)(基于libevent实现)使用c++手把手实现一个简单的http服务器
2024-08-10 20:35:28
212
原创 Linux构建C++环境
编译多个文件的古老方法就是编写makefile,用于说明各个c++文件的依赖关系,然后用一款make软件来构建程序,make会用到makefile文件(需手动编写)和g++编译器。头文件(.h)都放到include文件夹,源文件(.cpp)包括main.cpp都放到src文件夹。主要含义就是:把include文件夹当作头文件目录,把src当成源文件目录,使用c++11的标准。因此更现代的构建工具cmake应运而生。:编译C++时要使用g++编译,使用gcc可能会有一些链接和定义的问题出现。
2024-08-10 19:22:52
2149
原创 Linux 服务器开发参考-c++
在C++开发中,原生的线程库主要有两个,一个是C++11提供的< thread>(std::thread类),另一个是Linux下的(pthread类)- 线程池概念及优点。
2024-08-10 19:21:08
407
原创 Linux网络编程-epoll
该文件描述符用于随后的所有对epoll的调用接口。每创建一个epoll句柄,会占用一个fd,因此当不再需要时,应使用close关闭epoll_create()返回的文件描述符,否则可能导致fd被耗尽。使用时,用户可以将自己需要的数据存放到这个字段中,当事件触发时,epoll系统调用会返回这个数据,以便用户处理事件。函数的返回值为 0 表示操作成功,-1 表示出现错误,具体的错误信息可以通过检查 errno 变量获得。data字段表示用户数据,它的类型是一个union,可以存放一个指针或文件描述符等数据。
2024-08-10 19:17:12
857
原创 C++协程基础
通用的说法是协程是⼀种“轻量级线程”,用户态线程”。可以减少用户态与内核态的切换,相当于一个花里胡哨的函数。协程的本质就是函数和函数运行状态的组合。函数一旦被调用,则只能从头运行到结束协程可以执行到一半退出(yield),暂时让出CPU执行权;在后面适当时机可以重新恢复运行(resume)。这期间CPU可以运行其他协程。协程能够半路yield、再重新resume的关键是协程存储了函数在yield时间点的执⾏状态,这个状态称为协程上下文。通过记录当前执行状态下CPU全部寄存器的值来实现。
2024-08-08 20:14:15
911
原创 Linux网络编程-socket网络编程
每创建一个epoll句柄,会占用一个fd,因此当不再需要时,应使用close关闭epoll_create()返回的文件描述符,否则可能导致fd被耗尽。使用sockaddr_in结构体时,需要将其类型转换为sockaddr类型,因为套接字API中的大多数函数都需要传入sockaddr类型的指针作为参数。使用时,用户可以将自己需要的数据存放到这个字段中,当事件触发时,epoll系统调用会返回这个数据,以便用户处理事件。如果函数调用成功,会返回一个标识这个套接字的文件描述符,失败的时候返回-1。
2024-07-30 15:53:38
986
原创 Linux网络编程-多线程编程
在C++开发中,原生的线程库主要有两个,一个是C++11提供的< thread>(std::thread类),另一个是Linux下的(pthread类)信号量主要就是用来保护共享资源的,也就是说如果你想限制某个(些)资源在同一时刻只能有一(多)个线程拥有,就可以使用信号量。当然也可以用作让一个线程等待另一个线程完成某项工作。主要用下面一组函数(系统调用)来实现。
2024-07-30 15:53:14
409
原创 C\C++输出格式
以“%”开头,后面跟格式字符,格式字符前面还可以有其他修饰符,表示输出数据的宽度、精度等。格式说明符的个数必须与后面的参数 argument 的个数一致。5)length 表示整型数据是长整型还是短整型,length。4)precision 表示单精度和双精度浮点数的小数点个数。在C/C++中可以通过特定的符号来输入一个变量。3)width 控制数据输出的宽度。
2024-07-24 17:40:25
304
原创 Windows 安装 PCL
然后改成bat文件,双击获得一个release.txt或者debug.txt文件,这样就可以把当前目录所有的lib文件名都写在txt文档中了,否则要一个一个输入进去,非常的麻烦。将pcl-1.13.0-pdb-msvc2022-win64.zip文件解压缩,将pdb文件全部复制到PCL安装目录下的bin文件夹中。点击下载的PCL-1.13.0-AllInOne-msvc2022-win64.exe进行安装。配置包含目录:VC++目录——包含目录。配置库目录:VC++目录——库目录。
2024-06-25 21:37:50
1852
1
原创 Linux git
这个命令会尝试合并上游仓库的master分支的更改,即使这两个分支的历史记录完全不相关。请注意,这种合并可能会很复杂,并可能不是你想要的。登录自己的github账号,新建仓库,添加或不添加README.md,根据需求,设置名称、权限等内容。:代码的commit历史会在文件夹里的隐藏文件夹 .git 里记录,通过git log可以查看。:Git认为你正在尝试合并两个没有共同祖先的分支,这通常意味着它们完全是不同的项目。:在上传代码到远程仓库之前,应该先将远程仓库更新的代码拉取到本地。
2024-06-23 20:13:49
1283
原创 HDR图像合成及边缘检测(opencv 和 c++)
有时色调映射的目标是产生逼真的图像,而且往往是产生超现实图像的目标。公式里用到了exp函数,图片默认是unsigned char型,范围是0-255,公式中的0.5是0-1范围内的,所以需要将原图像转换为double型,将灰度值都转换为0-1之间,就可以利用该公式进行相应的运算。处理完以后,图像还是CV_64FC3类型,如果直接保存,点开图像会发现,显示全黑,这是因为电脑默认打开图片是CV_8UC3类型的,所以还需要将CV_64FC3乘以255,再转换为CV_8UC3。第三个参数也可理解为输出图像的类型。
2024-05-06 21:50:05
2185
2
原创 树莓派开发过程记录
1.准备TF卡16g及以上为好TF卡插入电脑后只显示几十M这时候可以利用DiskGenius对TF卡进行格式化,取消分区然后重新建立分区此时重新显示TF大小为8G2.镜像的下载与写入镜像的下载打开树莓派官网https://www.raspberrypi.org/在其导航处可看到下载下载后解压,可得到一个img文件。镜像的写入镜像的写入需要使用工具Win32DiskImager打开后确定写入的盘符无错,然后浏览文件选择刚下载下来的镜像文件,点击write进行写入写入成功后,该TF
2021-04-14 16:14:06
475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人