2012年4月20日

Linux Signal (8): sigsetjmp和siglongjmp

摘要: 进程部分介绍过了setjmp和longjmp函数, 这两个函数在跳转时会带信号屏蔽字跳转, 在信号处理程序(hanlder)中使用longjmp会导致后来产生的这种信号被屏蔽.POSIX.1 也没有具体说明setjmp和longjmp对信号屏蔽字的作用, 而是定义了两个新函数: sigsetjmp和siglongjmp.1. 原型:#include<setjmp.h>intsigsetjmp(sigjmp_bufenv,intsavemask);直接调用则返回0,从siglongjmp调用返回则返回非0值.voidsiglongjmp(sigjmp_bufenv,intval);可 阅读全文

posted @ 2012-04-20 18:00 Richard.FreeBSD 阅读(223) 评论(0) 推荐(0) 编辑

Emacs中使用etags [3]

摘要: 对于代码量比较大的情况而言,浏览代码就是一件很重要的事情了。在vi中提供了一个比较好的插件来进行相关操作,但是Emacs又该怎么办呢? 使用Emacs浏览代码有三个方案,最简单的就是etags,第二种是cscope,第三种暂时想不起来了。今天只说最简单的方式,由简入难吧。 我本以为etags像其它插件一样,就是一个el文件,然后执行一下,后来发现我错了。etags其实是个shell命令。 1).安装etags,一般来讲,这是emacs的内建程式; 2).在当前目录建立tag table:M-! etags *.[ch]; 3).使用: A.M-. :跳至相应的函数定义处; B.M... 阅读全文

posted @ 2012-04-20 16:17 Richard.FreeBSD 阅读(358) 评论(0) 推荐(0) 编辑

Emacs中使用etags [4]

摘要: Navigating using tagsOnce you have a tags file, you can follow tags (of functions, variables, macros, whatever) to their definitions. These are the basic commands:`M-.’ (‘find-tag’) – find a tag, that is, use the Tags file to look up a definition. If there are multiple tags in the project with the s 阅读全文

posted @ 2012-04-20 16:17 Richard.FreeBSD 阅读(136) 评论(0) 推荐(0) 编辑

Emacs中使用etags [2]

摘要: Install ecb :Step 1] sudo apt-get install ecbStep 2]Download xcscopel.el in ~/bin folder and set this file path in .emacs file :http://opensource.apple.com/source/cscope/cscope-5/cscope/contrib/xcscope/xcscope.elStep 3] Download :http://deep.syminet.com/.emacsStep 4] add below lines on to your .emac 阅读全文

posted @ 2012-04-20 16:15 Richard.FreeBSD 阅读(331) 评论(0) 推荐(0) 编辑

Emacs 快速入门

摘要: Emacs 快速入门Emacs 启动: 直接打emacs, 如果有X-windows就会开视窗. 如果不想用X 的版本, 就用 emacs -nw (No windows)起动. 符号说明 C-X 表示按住CTRL键, 然后按X, 再把CTRL, X一起放开. M-X META META 在没有META键的电脑上, M-X 等于先按 ESC键, 接著按 X键. Sun上面META键就是菱形的那个键. 有些系统META键就是ALT键.(或者某一边的ALT键) C-X或 M-X的X没有大小写分别. Emacs按键命令基本上是一串C-<chr>和M-<chr>组成的. 超.. 阅读全文

posted @ 2012-04-20 16:14 Richard.FreeBSD 阅读(532) 评论(0) 推荐(0) 编辑

在Emacs下用C/C++编程

摘要: 写C++程序基本上是这么几个步骤:编辑代码编写Makefile编译代码,修改编译错误调试代码,修改逻辑错误当然,往往还需要阅读别人的代码。根据上述步骤,本文主要针对以下几个方面:配置Emacs,建立便利的代码编辑环境和Makefile编写环境。在Emacs中编译代码,并修改编译错误。在Emacs中配合GDB调试程序。利用cscope和ecb在emacs中阅读代码。基本流程基本环境设置编辑环境配置要写C++程序,当然要用到cc-mode插件。CC-Mode原本是支持C语言的,但现在也能支持很多语言,比如 C++,Java,Objective-C,CORBA,AWK,Pike等等。CC-Mode是 阅读全文

posted @ 2012-04-20 16:13 Richard.FreeBSD 阅读(523) 评论(0) 推荐(0) 编辑

Emacs中使用etags [1]

摘要: 在emacs里可以用etags命令生成emacs专用的tags文件,有了此文件之后便可以使用一些emacs tags的命令,比如对于编辑C/C++程序的人员可以方便的定位一个函数的定义,或者对函数名进行自动补齐:[Code]find -name "*.h" -or -name "*.cpp" |xargs etags --members --language=c++我在使用上述命令时未能成功,但以下命令可以[Code]find -name "*.cpp" -exec etags -a {} ;或[Code]find . -name & 阅读全文

posted @ 2012-04-20 16:11 Richard.FreeBSD 阅读(178) 评论(0) 推荐(0) 编辑

emacs 跳转到指定行

摘要: 试试这个快捷键 M-g g 或者 M-g M-gM-x goto-line 阅读全文

posted @ 2012-04-20 15:55 Richard.FreeBSD 阅读(1188) 评论(0) 推荐(0) 编辑

restrict 关键字

摘要: restrict是c99标准引入的,它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式.即它告诉编译器,所有修改该指针所 指向内存中内容的操作都必须通过该指针来修改,而不能通过其它途径(其它变量或指针)来修改;这样做的好处是,能帮助编译器进行更好的优化代码,生成更有 效率的汇编代码.如 int *restrict ptr, ptr 指向的内存单元只能被 ptr 访问到,任何同样指向这个内存单元的其他指针都是未定义的,直白点就是无效指针。restrict 的出现是因为 C 语言本身固有的缺陷,C 程序员应当主动地规避这个缺陷,而编译器也会很配合地优化你的代码.编辑本段例子 阅读全文

posted @ 2012-04-20 15:08 Richard.FreeBSD 阅读(233) 评论(0) 推荐(0) 编辑

导航