参考网上的教程安装dlib 进入官网下载安装包,解压 sudo apt-get install cmake sudo apt-get install libboost-python-dev 问题原因 这个是在Linux上编译项目的时候,一个动态库层用到的一个函数实现未找到,, 系统安装了libpng ...
分类:
系统相关 时间:
2017-10-19 21:12:59
阅读次数:
658
我们知道goto语句是不能跳过函数的,但是在我么C语言的应用中,在不使用汇编的情况下,遇到需要跳出深层循环比如检错机制的时候,有确实想要跨函数跳转,有没有上面办法可以做到呢? 这就是今天要讲的两个库函数,setjmp和longjmp. 先看例子: 通过上面的测试代码和输出数据,我们可以看到longj ...
分类:
其他好文 时间:
2017-10-08 14:47:22
阅读次数:
167
准备雄心勃勃的看完APUE,但是总感觉看着看着就像进入一本字典,很多地方都是介绍函数的用法的,但是给出例子远不及函数介绍的多。而且这本书还是个大部头呢。第7章的讲的进程环境,进程是程序设计中一个比较重要的概念,知道倒是知道它的大概意思,但是其实还是有很多的细节其实都没有深究,这章呢APUE就带着我们 ...
分类:
系统相关 时间:
2017-07-24 00:16:47
阅读次数:
208
int setjmp(jmp_buf env):函数会保存当前执行环境,初次调用时会返回0值;在调用链中如果遇到void long_jmp(jmp_buf env, int value)时会返回该处,并取得value值。 与goto相比,longjmp可以实现函数间的跳转,goto只能在函数内部跳转 ...
分类:
其他好文 时间:
2017-07-03 14:08:05
阅读次数:
134
仿制云风的协程库的接口设计,我花了一个下午加晚上的时间重构了之前写的协程库,提供的接口现在和云风大大的协程接口一模一样,都是仿制lua的非对称协程。我们依旧没有用ucontext.h组件(用ucontext.h组件实现协程的文章铺天盖地,可以自行寻找,用longjmp实现就少很多,用内联汇编实现的就 ...
分类:
编程语言 时间:
2017-06-23 13:07:27
阅读次数:
218
1 在proc.c的scheduler函数中,有两行: if(setjmp(&cpus[cpu()].jmpbuf) == 0) longjmp(&p->jmpbuf); 把它修改为: cprintf("setjmp called in scheduler\n"); if(setjmp(&cpus[ ...
分类:
编程语言 时间:
2017-05-17 10:24:49
阅读次数:
716
轮子年年有人造,我们也来凑热闹,参考协程实现,大概有以下几种方法: 1)利用setjmp,longjmp 2)利用ucontext接口函数 3)汇编 (线程无非就是多了个抢占功能,由定时器触发,而非自愿让出运行权限) 因为我写的时候还没看到其他帖子,如果看到了,铁定会用最直观的ucontext接口写 ...
分类:
编程语言 时间:
2017-05-13 16:58:32
阅读次数:
254
由于在信号处理期间自动屏蔽了正在被处理的信号,而使用setjmp/longjmp跳出信号处理程序时又不会自动将 信号屏蔽码修改会原来的屏蔽码,从而引起该信号被永久屏蔽。 可以使用sigsetjmp/siglongjmp来解决这一问题。 int sigsetjmp(sigjmp_buf env, in ...
分类:
其他好文 时间:
2017-04-10 18:42:21
阅读次数:
294
6. 非局部跳转 (1)setjmp和longjmp语句 头文件 #include<setjmp.h> 函数 int* setjmp(jum_buf env); 返回值 直接调用返回0,若从longjmp调用返回则返回非0值 功能 设置非局部跳转的跳转点 函数 void longjmp(jmp_bu ...
分类:
系统相关 时间:
2017-01-28 21:15:49
阅读次数:
323
在信号处理程序中经常调用longjmp函数以返回到程序的主循环中,而不是从该处理程序返回。 但是,调用longjmp有一个问题。当捕捉到一个信号时,进入信号捕捉函数,此时当前信号被自动地加到进程的信号屏蔽字中。这阻止了后来产生的这种信号中断该信号处理程序。(仅当从信号捕捉函数返回时再将进程的信号屏蔽 ...
分类:
其他好文 时间:
2017-01-28 15:53:29
阅读次数:
226