编程相关
文章平均质量分 91
潜水企鹅
这个作者很懒,什么都没留下…
展开
-
编程技巧分享之so的初始化
假设我们需要提供一个 so 给其他人用,并这个 so 需要执行初始化动作,你会怎么来设计?方法1:简单粗暴这种方法应该是最容易想到到的,直接简单粗暴,提供接口,让调用者来处理,示例如下:/****** method1.c ******/ void method1_init(void){ printf("calling method1_init...\r\n");}void method1_dosomething(void){ printf("calling method1_原创 2020-06-07 16:58:04 · 909 阅读 · 0 评论 -
编写重入和线程安全代码
原文地址:https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_61/com.ibm.aix.genprogc/writing_reentrant_thread_safe_code.htm在单线程进程中,只存在一个控制流。因此,这些进程所执行的代码无需重入或是线程安全的。在多线程程序中,相同的功能和资源可以通过多个控制流并发访问。转载 2016-11-01 13:37:57 · 444 阅读 · 0 评论 -
二进制修改程序改初始化数据
给我修改个初始化参数吧有天公司硬件找到我,要我给他修改一个功放初始化参数,调试效果。找到功放驱动源码,功放初始化参数是写在一个二维数组,地址和数据一一对应,在系统初始化过程,一个个写进功放。在他看来需求很简单,改一个寄存器的初始化值然后编译输出一个临时软件给他验证。可是,这套代码很庞大,编译非常耗时,而且还要考虑版本匹配等问题,好吧,得动点歪主意了。认识 nm 命令只是改个数字,直接二...原创 2018-12-31 17:11:10 · 1471 阅读 · 0 评论 -
tar档的秘密
为什么我打包的不行前段时间在一个项目上,系统的升级包是用 tar 命令打包出来的,即把需要升级的分区等文件通过 tar 打包后通过特制的 bootload 升级系统,既然如此,有时候我只需要更新一个不需要编译的文件,就想直接修改升级包的内容然后执行升级,然后我通过 tar 命令解压出来,修改完文件再打包回去,结果升级不了,提示升级错误,让我有点困惑。好在能看到升级程序的源码,通过查看源码后发现...原创 2019-01-27 16:34:21 · 276 阅读 · 0 评论 -
如何优雅的生成一个 diff patch
某天如果你要把一条 git 或 svn 记录的修改发送给其他人时我们要怎么做呢?在 git 下你可以这么做:git format-patch 【commit sha1 id】 -1这样会生成单条记录的 patch 文件,当然也可以生成多条或者两条 commit 记录之间的修改。例如我们在开源项目 nuklear 上执行如下命令生成一条记录的 patchgit format-patch ...原创 2019-02-23 17:31:10 · 817 阅读 · 0 评论 -
一个Makefile示例
一个Makefile示例作为一个普通的搬砖码农来说,敲 make 的次数多,写 makefile 的机会却比较少,但掌握它是十分有必要的,毕竟读和改 makefile 的时候还是很多的嘛,特别是对于一个经常使用 c/c++ 的码农来说。网上有一份关于 makefile 很好的资料叫做 《跟我一起写Makefile》,每每遇到不懂的地方我都会在里面找答案,非常的不错,需要的请到如下网盘路径下载:...原创 2019-03-24 17:41:46 · 296 阅读 · 1 评论