- 博客(8)
- 收藏
- 关注
原创 C++含有可变形参的函数
有时我们无法提前预知应该向函数传递几个实参,为了编写能处理不同数量实参的函数,C++11新标准提供了两种方法:如果所有实参类型相同,可以传递一个名为initializer_list的标准库类型;如果实参类型不同,我们可以编写一种特殊的函数,也就是所谓的可变参数模板。C++还有一种特殊的形参类型(省略符)可以用它传递可变数量的实参。这种功能一般用于与C函数交互的接口程序。
2024-06-12 11:27:43
357
原创 使用libevent实现事件驱动以替代多线程并发阻塞I/O结构
用多线程来操作同一个event_base,在我的项目的环境中,使用第一版的PPPoE客户端,每个连接大概消耗了7MB的内存,这是不可接受的,想象一个学校6000个拨号,就会占用42G的内存占用,这是非常吓人的,使用了新的基于libevent的模型,不管多少个连接,我都只占用了大概5MB的内存,这是非常可观的,由此可见,在未来的网络编程中,或者多线程阻塞IO中我们都可以改写为使用事件驱动来进行优化。这样做,就没有一直存在的线程了,而是交给epoll来做,大家觉得这样可以吗........当然不行!
2024-04-25 15:37:39
878
1
原创 [Linux系统]部署PPPoE+radius服务器
由于PPPoE热度在00到10年,所以,大部份资料都在这个年限中,但是PPPoE和PPPD进行了数个版本的迭代发生了一些变化,包括freeradius的文件夹结构等等,都有一些细微改变,笔者也是一点一点查资料,找了很久才部署成功,如果大家在部署过程中有什么问题,建议去外网搜索,内网资料实在屈指可数,由于年限,找到了也不太能用,希望大家部署顺利。笔者也是小白,有什么问题大家可以评论一起讨论!
2024-02-26 10:45:58
2005
1
原创 ubuntu配置freeradius与mysql进行认证服务
想要在自己的ubuntu上部署一个搭配mysql的radius服务器,在网上找了很久资料,可能比较原始,网上的资料大都为零几年的,那个时候的freeradius配置和现在很不一样,找了很久资料才配好,好不容易配好了,给大家参考一下..如果还有什么问题可以问我,我也在学习。
2024-02-19 16:27:59
550
1
原创 (贪吃蛇)Linux C基于VT码实现的贪吃蛇小游戏
因为学习C许久,但是一直没有做过贪吃蛇,觉得不太行,因此花了点时间用LinuxC写了一个贪吃蛇的小游戏。大致思路是链表节点对应蛇的节点,头节点按方向移动(方向由另一个线程来获取用户输入),身体按频率向后一个节点传递坐标,然后一帧一帧刷新屏幕,绘制使用VT码来实现绘制,因为VT码只能绘制字符,因此蛇的节点不是正方形的,而是长宽2:1的长方形,如果大家想绘制一个节点为正方形的可以使用frame buffer驱动,这里本人不对此扩展(因为只写了VT的)。因为代码粘贴进csdn可能会有差别,所以细节差别还望大
2024-01-24 11:54:47
567
2
原创 解决点烟器车载mp3歌曲播放按人名顺序问题
因为老爸的车淘汰给本人了,本人开车有听歌需求,而车又比较老,没有蓝牙功能,因此本人使用点烟器外接usb实现听歌功能。点烟器中播放歌曲是按照字母顺序播放,因此每次听歌的时候会造成一直播放一个人的歌的情况(因为曲名常以人名开头),非常影响体验,因此诞生了这个脚本,原理是把所有文件名改成随机数,点烟器读取歌曲就会按照数字顺序来播放了,而每个歌曲的名字都是不重复的随机数,从而可以实现随机播放功能。
2024-01-23 15:39:31
570
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人