
c/c++
潜水企鹅
这个作者很懒,什么都没留下…
展开
-
编程技巧分享之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 · 979 阅读 · 0 评论 -
一个线程死锁的例子
今天我们看一个线程死锁的例子。之前接触过的死锁 bug 都存在两个锁的情况,前段时间遇到一个由于写法问题导致一个锁的时候也出现了死锁的情况。代码流程大致如下:pthread_mutex_t mutex = -1;void* thread_fun(void *arg){ pthread_t pid = pthread_self(); if(-1 == mutex) { pth...原创 2019-10-29 00:19:19 · 1130 阅读 · 0 评论 -
strtok、strtok_s、strtok_r 字符串分割函数
经验教训:在多线程编程时一定要注意函数的可重入性,对于使用静态或全局变量等不可重入的函数进行改造或加锁使其串行化调用,注意掉用的库函数是否是线程安全的,常见的线程不安全函数如strtok、 ctime原文地址:http://www.cnblogs.com/sdlwlxf/p/4354310.html1、strtok函数函数原型:char * strtok (char *st转载 2016-11-01 11:26:00 · 2127 阅读 · 0 评论 -
如何在main函数之前搞事情
很久没出来搞事情了,今天我们来在 main 函数之前搞搞事情。写汇编的大神看到可能要笑了,我一直都在 main 函数前搞事情啊,要不是我搞好运行时环境,设置好栈,看你怎么运行哦。那写 c 不同啦,想要在 main 前搞事情,那得借助 gcc 的黑魔法 __attribute__。话不多说,直接上码:#include <stdio.h>#include <stdint.h...原创 2019-09-19 23:40:55 · 242 阅读 · 0 评论