摘要: 实现协程最核心的部分就是栈切换了,其他的和非阻塞io的编程方式没什么区别。 栈切换,libc中有一个实现,swapcontext,但是已经被标准移除了,未来是否可用不得而知,自己实现需要写汇编代码,这是一个很困难的任务,因为既要熟悉不同cpu指令集又要熟悉不同平台的标准,好在从boost libra 阅读全文
posted @ 2021-01-31 15:36 yiifburj 阅读(969) 评论(0) 推荐(1) 编辑
摘要: 经过多年的工作,我发现很多问题都是人为搞复杂的,设计上的错误会导致程序的复杂,程序的复杂会进一步增加bug,不正确的对bug的处理又会增加复杂性。。。一个好的设计一定是简单优美的,一定是思考了本质的结果,而不是为了怎样而怎样。 本文主要针对linux下用户态编程,不区分并发和并行,多核cpu和多个c 阅读全文
posted @ 2021-01-30 22:46 yiifburj 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 看了自己的动态记录,发现自己已经遗忘了曾经的自己,有一条动态,2013年的时候,我看了一篇关于尾递归的博文,那时候还只是一个初学者,胡乱评论了一下,作者希望我能写一篇博文发表一下自己的看法,当时没有写,然而现在却想写点什么总结一下,不保证说的没问题,只希望如果有像我当年一样的初学者看到,可以参考借鉴 阅读全文
posted @ 2021-01-30 21:11 yiifburj 阅读(788) 评论(0) 推荐(2) 编辑
摘要: awk实在是太强大了, 非常复杂的任务,几行代码就可以解决, awk经常需要用到, 但是在c语言里面, 调用system不太优雅, 能不能直接在c语言中直接调用呢,简单实现了一些功能, 但大多数情况,够用了,参考 https://github.com/yiifburj/my_tools/blob/m 阅读全文
posted @ 2017-11-12 20:13 yiifburj 阅读(1037) 评论(0) 推荐(0) 编辑
摘要: 内核模块编译helloworld: no symbol version for module_layout, 尝试各种解决办法, 都没搞定, 版本也是对的。dmesg提示no symbol version for module_layout, 仔细观察发现,Module.symvers 有警告信息(... 阅读全文
posted @ 2015-12-26 15:10 yiifburj 阅读(3333) 评论(0) 推荐(0) 编辑
摘要: 1ncc是一个编译器,用于输出程序的一些调用信息等,可以查看函数调用关系,支持函数指针,查看数据结构和代码.可以用来分析和理解代码.“"...withncc,inlessthan40minutesIwasabletocomprehendtheconsolei/osubsystemofthelinux... 阅读全文
posted @ 2015-07-01 13:27 yiifburj 阅读(904) 评论(0) 推荐(0) 编辑
摘要: 以前用过octave, 和matlab类似的软件, 指定范围非常方便 i = 1:10:100; 就可以得到10 20 30 ... 100这一系列的数据, 但是在c里面, 必须手动写循环, 太不符合懒人的习惯了, 今天写了一个宏, 终于实现了, 貌似编译器没有优化, 还是在运行时获取整数的数值,不... 阅读全文
posted @ 2015-04-18 17:03 yiifburj 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 本文参考http://stackoverflow.com/questions/2179403/how-do-you-read-a-segfault-kernel-log-message和http://www.slideshare.net/noobyahoo/introduction-to-segme... 阅读全文
posted @ 2015-04-12 10:17 yiifburj 阅读(340) 评论(0) 推荐(0) 编辑