- 博客(71)
- 收藏
- 关注
原创 编译dpdk提示missing dependency, “mlx5“问题
编译dpdk提示missing dependency, "mlx5"问题
2024-07-31 00:45:25
355
原创 每日一读: 硬件网卡tx支持哪些功能特性offload(ixgbe驱动为例)
【代码】每日一读: 硬件网卡tx支持哪些功能特性offload(ixgbe驱动为例)
2024-05-29 11:09:19
321
原创 dpdk tap设备不能转发大于1500报文问题分析
在使用dpdk做流转发的时候,期望将部分流量转到tap设备,以供Linux协议栈消费。做测试的时候发现两个问题,问题一: 报文超过MTU 1500的报文,在tap设备上抓不到报文。问题二: ifconfig 修改tap设备的MTU为 2000,在tap设备上依旧抓不到报文,猜测这个地方只是修改了Linux本身的限制,并没有修改dpdk运行时代码的限制。dpdk版本: 22.11。
2024-04-25 02:24:30
421
原创 计算机学生求职简历的一些想法
一般计算机学生的简历都或多或少的有项目介绍。不要大段大段的描述,这对于一个阅读简历的人来说还是比较痛苦的,因为阅读简历的人不一定是这个方向的,有很多的背景知识也不一定了解,读完大段之后,有可能经常获取不到要点,如果觉得重要的信息,可以加黑,突出识别。简历项目的介绍可以遵循STAR原则,也即是在什么背景(situation)下拿到什么任务(Task),你做了些什么动作(Action),拿到了什么结果(Result)。首先是项目的背景介绍,并不需要大段大段的介绍项目背景,需要有总结概括的能力。。
2024-04-02 20:42:51
890
原创 python curses库异常报错问题: _curses.error: setupterm: could not find terminal
在使用python curses库(终端字符单元显示的处理)时,报错显示_curses.error: setupterm: could not find terminal。
2024-03-27 20:09:34
483
原创 数组初始化(指定下标初始化)
在C语言中,在C99标准之后,就可以使用指定初始化器(designated initializers)来初始化数组或结构体中特定的元素。指定初始化器在初始化数组时允许显式地指定一个或多个索引及其相应的值,对于未显式初始化的元素,将默认为零。一般通用做法还是使用枚举类型或者宏定义类型作为下标,可以提高代码的可读性,也方便于管理复杂的初始化场景。需要注意的是,这个特性是 C99 以及其后的标准特性。具体应用场景就是每个数组下标有具体的含义。
2024-03-04 22:30:59
655
原创 戏说c语言: 阶段性总结二
经过几番努力,终于完成了一个初版的学生成绩管理系统。这个只是一个系统初版模型,还有很多提高和优化的地方。但是这个系统,基本上将学习到的最基本的c的知识应用其中。现在我们来回顾总结一下。有人说指针是c语言中最难学习的部分,要说指针难吧,也难,要说不难,也不难,正如彭端淑所说:“天下事,难易乎,为之,则难者亦易矣。”就看你有没有去学习的心态。
2024-02-28 23:46:47
567
原创 戏说c第二十六篇: 测试完备性衡量(代码覆盖率)
师弟:“师兄,我又被鄙视了。说我的系统太差,测试不过关。我:“怎么说?师弟:“每次发布版本给程夏,都被她发现一些bug,太丢人了。师兄,有什么方法来衡量测试的程度么?我:“有,代码覆盖率就是一个比较好的方式。
2024-02-28 00:45:11
645
原创 c入门第二十五篇: 学生成绩管理系统优化(多线程)
程夏:“你这个系统不好用啊?连上之后没有反应,是不是挂了?师弟:“不应该啊,我这边好好的,可以正常操作的。程夏:“我这边有问题,大概率还是你系统问题。你再测试一下吧。师弟:“额,基本的功能我都测试过了的。程夏:“多客户端请求呢?一些边界场景、一些异常场景都有测试么?师弟瞬时陷入沉思,难道是多客户端操作存在问题。师弟紧急复现了一下这个问题,发现服务端,最多处理一个客户端的请求,其他请求阻塞住了。如何支持多客户端的请求呢?
2024-02-27 22:36:19
402
原创 c入门第二十四篇: 学生成绩管理系统优化(可执行文件传参)
我:“师弟,review完你的代码之后,你觉得有没有什么地方可以优化?”师弟一脸懵。我:“比如,你把客户端和服务端的可执行文件生成之后,我把服务端部署到我的测试机器上,客户端部署在另一台机器上,这样可行么?”师弟:“师兄你这么说,那就是不可行了?”我:“为什么不可行呢?”师弟:“我先测试一下。”十几分钟过后,师弟过来说,“的确不行,每次服务端的部署位置改变,客户端就出现连不上服务端的情况,主要是因为客户端中的server ip是固定的。除非重新修改客户端代码中的ip。”我:“如果每次更换部署的
2024-02-26 23:43:00
486
原创 c入门第二十三篇: 学生成绩管理系统优化(支持远程操作)
师弟高兴的说道:“师兄,你猜我今天上课看见谁了?我:“谁呢?师弟:“程夏,没想到,她竟然来旁听我们计算机系的课程了。虽然我从前门进去的,但是我还是一眼就看见了坐在后面的她。我:“有意思,你没过去打个招呼?师弟:“我正要挨过去坐着,被占位的室友拉住了,就不好意思了。还好第一节课间休息的时候,我果断溜了过去。师弟开始回想当时的场景,嘴角先是上扬,接着又下扬。当时她在忙着看书,等我在她旁边坐下,稍微撇过头看她看什么书的时候,她才发现的我。
2024-02-26 22:38:22
479
原创 c入门第二十二篇: 学生成绩管理系统查询优化(二分查找)
师弟: “经过几轮优化之后,我的学生成绩管理系统,感觉已经非常不错了,是我学习以来做的最好的系统了。没想到,还是被嘲笑了。我:“怎么被嘲笑了?师弟:“程夏她说: 你在录入学生的时候,id是增序录入的,在查询的时候,就不能高效一点查询,不去遍历整个数据?我:“确定这个女生不是我们计算机系的?师弟:“的确不是我们计算机系的呢。我:“那人家学习的速度和你相比,像是龟兔赛跑呀。看师弟有点难受,我:“干嘛这么惆怅,谁笑的开心还不一定呢。在讲二分查找之前,讲个故事吧。”
2024-02-24 02:06:37
1007
原创 c入门第二十一篇: 学生成绩管理系统之成绩排序
在学生成绩管理系统中,必然面临着排序的问题。这里我们简单的将之前讲过的冒泡排序应用于我们的学生成绩管理系统中。是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的两个项,如果相邻不是预期的顺序时交换它们,最终达到我们目标的顺序。
2024-02-24 01:32:06
842
原创 c入门第二十篇: 学生成绩管理系统优化(指针入门之动态内存管理,如何支持更多的学生?)
前面提到了数组最大的问题,就是不支持动态的扩缩容,它是静态内存分配的,一旦分配完成,其容量是固定的。为了支持学生的动态增长,才引入链表。其实除了链表,还有一种解决该问题的方式,就是动态数组——动态申请内存的数组。
2024-02-23 01:17:39
464
1
原创 c入门第十九篇: 易错的指针操作(代码的调试)
前面讲述到了链表的操作,链表具有动态伸缩的优点,但是链表是指针操作,必然面临着指针操作的诸多问题,比如典型的空指针操作问题,出现问题之后,除了printf,还有没有其他方法调试呢?当然就是gdb。
2024-02-18 03:31:32
425
原创 c入门第十八篇: 学生成绩管理系统优化(支持学生数的动态增长——链表,指针的典型应用)
链表相较于数组,它有灵活的扩展的优势,但是它的内存不是连续的,访问性能比不上数组。虽然当前数组实现的查询,也是遍历数组,但是这里是可以进行排序优化查询的,但是链表不行。在高性能转发场景中,比如dpdk场景中,使用的还是数组。
2024-02-17 02:29:51
596
原创 C入门番外篇七: 金庸武侠中另一半的查找(如何快速查找?)
最近在学习文件操作,现在正好有一道编程题,从文件中读取金庸小说中男女一对的名字,初始化数据信息(伪AI学习阶段),然后输入男或女的名字,返回另一半的名字。如何实现?有没有O(1)的方法?
2024-02-17 00:40:05
362
原创 c入门第十七篇: 学生成绩管理系统优化(数据持久化,读写文件)
上一节说道师弟的学生成绩管理系统缺少数据持久化,关于数据持久化的方法基本都是落盘,将内存信息回写磁盘。回写磁盘的方式有很多种,典型的就是普通的文件操作,还有就是数据库操作。这里将重点使用普通的文件操作,来实现数据回写磁盘,以及从磁盘读取数据。
2024-02-17 00:06:18
589
1
原创 c入门第十六篇——学生成绩管理系统
师弟实现的学生成绩管理系统功能包括:添加学生信息、显示所有学生信息、按学号查找学生信息、按姓名查找学生信息、添加学生成绩、修改学生成绩、显示学生的平均成绩、退出系统。
2024-02-14 22:43:07
1280
原创 c入门番外篇——我们用密码交流怎么样?
最近看到一个关于华罗庚先生的小故事。一九二九年,苏家驹先生在上海《学艺》七卷上发表了《代数式的五次方程之解法》,华罗庚先生发现此文在一个十二阶段的行列式中有计算差错,便写出《苏家驹之代数解法不能成立的理由》的论文,于一九三O年发表于上海《科学》杂志,论文引起了清华大学熊庆来教授的重视,得意后续进入清华。那一年他才20岁,因为家境贫寒,从高中辍学多年。
2024-02-14 11:22:00
493
原创 c入门第十五篇——学而时习之(阶段性总结)
黄蓉心中暗笑:“好啊,又是一对!没几日之前,两兄弟为了芙儿拚命,兄弟之情也不顾了,这时另行见到了美貌姑娘,一转眼便把从前之事忘得干干净净。”突然间想到郭靖,心下不禁自傲,靖哥哥对自己一片真心,当真富贵不夺,艰险不负,眼前的少年人有谁能比得上?跟着又想到了杨过,觉得他和小龙女的情爱身份不称,伦常有乖,然而这份生死不渝的坚贞,却也令人可敬可佩,两个徒儿万万不如。
2024-02-14 00:20:44
609
原创 c入门第十四篇——一个学生的信息(结构体)
我:“师弟,怎么又开始发呆呢?师弟:“师兄,上次不是程夏出了一道题么?让我实现记录班上学生的成绩,并对学生成绩排序。我实现了,但是她说不对,排序后,需要带上学生的详细信息,比如学号、名字、性别、成绩等信息。我在想c语言中,有没有什么可以实现类似的变量?我:“结构体变量就可以。”
2024-02-13 23:33:11
491
原创 c入门第十三篇——字符数组放不下一个女生的名字
师弟:“师兄,我最近在学习字符串的操作,遇到一个奇怪的现象,你帮我看看。我:“好啊,你描述一下现象呢?师弟:“我给一个字符串赋值,结果影响了另外一个整型的数值。程序简化如下。我:“你这是字符串溢出了。师弟:“溢出了?我定义的数组大小为8,赋值的字符串长度也为8,怎么会溢出呢?我:“在C语言中,字符串以空字符 ‘\0’ 结尾,所以它尾部还有一个隐形的字符。Linux系统可以通过man strcpy来看一下函数帮助,帮助中说明了会一并将’\0’进行拷贝,故溢出了。
2024-02-13 00:30:01
396
原创 c入门第十二篇——成绩差的往前坐(简单排序)
书接前文,师弟说道他喜欢的一个女生,让他实现一个算法,对班上的学生成绩进行排序。排序,这不是一件很简单的事情么?为什么这么说呢?因为她并没有对时间复杂度有要求。如果对时间复杂度,有要求,那就要用更高深一点的算法了。现在我们可以用最简单的2种排序算法。
2024-02-12 15:00:59
388
原创 C入门番外篇——师兄的不耻下问(2024是个闰年)
我:“师兄,新年快乐!”师兄:“新年有点不快乐!”我:“师兄这是怎么了?”师兄说:“收到一封信,正好你帮我参谋参谋怎么回信。”我:“师兄,你这是不耻下问么?”师兄说:“别贫嘴,帮看看。”
2024-02-12 14:36:55
1257
原创 C入门番外篇——吾欲之南海,何如?(二维数组)
蜀之鄙有二僧:其一贫,其一富。贫者语于富者曰:“吾欲之南海,何如?”富者曰:“子何恃而往?”曰:“吾一瓶一钵足矣。”富者曰:“吾数年来欲买舟而下,犹未能也。子何恃而往!”越明年,贫者自南海还,以告富者,富者有惭色。
2024-02-10 23:22:34
381
原创 c入门第十一篇——物以类聚(数组)
我:“师弟,看你在发呆,怎么了?师弟:“师兄,我喜欢的那个女生给我出了一道题。题目是输入班上学生的成绩,并对学生成绩排序,我在想怎么做。我:“哦?这个女生有意思。你觉得难点是什么呢?师弟:“我觉得有2个地方需要解决,一个是成绩的存储,另一个是成绩的排序。”
2024-02-08 22:14:13
1109
原创 c入门第十篇——指针入门
一句话来说: 指针就是存储了内存地址值的变量。在前面讨论传值和传址的时候,我们就已经开始使用了指针来传递地址。在正式介绍指针之前,我们先来简单了解一下内存。内存可以简单的理解为一排连续的房子的街道,每个房子都有自己的地址,叫内存地址。在大多数计算机使用 8 位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。
2024-02-08 22:09:09
566
原创 C入门番外篇: 谁是实验室划水之王?
临近春节,大家都很闲,这天晚上我看师弟在认真的刷视频。我:“师弟,给你个小的任务呀?师弟兴奋道:“师兄,啥任务呀?我:“这里有一份今天我们实验室每个人上网时长的数据,你要不要分析一下,谁的上网时间最长呀?师弟笑了:“好啊,不会最后是我吧。”
2024-02-07 19:22:24
402
原创 C入门番外篇——辛苦写的代码丢了
这天师弟很忧伤的跑过来和我说到:“师兄,我一个rm操作,把我最近写的代码全删除了,有点难受。我说道:“你有听过一个曲突徙薪的故事么?师弟摇了摇头。我说道:“它讲述的是有一人家炉灶的出烟口是直的,旁边还堆积着很多柴草。有人劝主人把出烟口改弯,把柴草搬走,以免引起火灾。主人觉得没啥事,不久,家中果然失火。事情需要做好提前防护的工作。
2024-02-06 23:52:39
427
原创 C语言的起源
1972-1973年丹尼斯·里奇(Dennis Ritchie)开始设计C语言。取了BCPL的第二个字母作为这种语言的名字,也算上ALGOL、BCPL、B的一种延续。
2024-02-06 23:22:52
902
原创 c入门第九篇——为什么我还是之前的我?(传值与传址)
有一天师弟兴冲冲的跑过来和我说:“师兄,我发现c语言设计存在一个bug。我问到:“什么bug呢?师弟说道:“你看我这段程序,没有生效。我笑着说到:“难道没有可能是你写的代码有问题?师弟说:“不会,我检查了好几遍了,这么简单的代码应该不会有问题的。我说:“那好,我们就简单分析一下。”
2024-02-06 15:09:25
393
原创 C入门番外篇——C, Are you OK?
今日路上看到一个车牌,52U0K,感觉很有意思,如果做一下简单的翻译就是,“我爱你,好么?”这样让我脑子中闪现了这样的一个画面:“一个男生追一个女生,看到女生不怎么搭理自己的样子,然后问道:让我爱你,好不好?”问的低声,问的婉转,问的卑微。在自己喜欢的人面前,的确是紧张到自卑,感觉喜欢的人很美好,自己配不上的样子,只能低着身段去追求,难道这真的是一个好的状态么?
2024-02-06 11:56:54
1512
原创 GNU C和标准C
要理解GNU C和标准C的区别,我们需要先了解C语言的标准化过程以及GNU项目。标准C: C语言最初由Dennis Ritchie在1973年设计并实现。随着其流行度的增加,为了保证不同编译器之间的可移植性和一致性,国际标准化组织(ISO)发布了C语言的第一个官方标准,被称为“ANSI C”或“C89”,这是个统一的C语言版本。后来,ISO和ANSI共同发布了几个更新的标准:C99、C11、C18等。
2024-02-05 23:59:53
933
原创 dpdk22.11 增加函数,不能被外部引用问题
最近在给dpdk22.11 lib/ethdev/rte_ethdev.c 文件新增功能接口做测试,新增的接口(rte_eth_dev_get_timestamp)被其他模块调用,编译时出现如下报错:undefined reference to `rte_eth_dev_get_timestamp’
2024-02-05 20:37:26
366
原创 c入门第八篇——如果上天可以给我再来一次的机会
至尊宝说:“曾经有一份真挚的爱情摆在我面前,但我没有珍惜,等到失去了我才后悔莫及,尘世间最痛苦的事莫过于此。如果上天可以给我再来一次的机会,我会对那个女孩说三个字:‘我爱你!’如果非要在这份爱前加一个期限的话,我希望是一万年。假如我们用程序来实现这段逻辑是怎么样的呢?
2024-02-04 12:49:30
356
原创 c入门第七篇——九九乘法表(双循环的实现)
一天早上,我说:“师弟,上次发了心心之后,你和你喜欢的女生怎么样了?她有没有接受你的心心啊?师弟说:“当时发完她挺开心的,还一起散了好多次步,吃了好几顿饭,但是最近两天,又不知道怎么了,爱搭不理的。哎,真不知道女生怎么想的,如果女生的想法像写hello world这样简单就好了。我说:“师弟,加油啊!过了许久,师弟端着电脑高兴地跑过来说:“师兄,你说你当年写九九乘法表,想了很长时间。你看我才花了几分钟就打印出了九九乘法表。”
2024-02-04 00:56:47
420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人