04 2008 档案

摘要:使用sigaction来实现signal函数,然后用一个例子测试一下. 该例子打印3的倍数,两秒运行后接收到SIGALRM信号. 超时退出. 阅读全文
posted @ 2008-04-23 17:25 shipfi 阅读(1397) 评论(0) 推荐(0)
摘要:以下是可以直接用来在C源程序中使用的宏函数,用来得到一些信息。包括打印源文件名,行数,日期,时间等。 对于这些调试信息,还可以进行扩充。 阅读全文
posted @ 2008-04-22 22:29 shipfi 阅读(352) 评论(0) 推荐(0)
摘要:在vim中,使用Cscope来快速定位函数的定义,查找函数的原型,很方便。 在我Fedora8的机器中,已经默认安装了cscope这个程序。 刚刚使用cscope,不是很熟悉,很多“先进的”功能留待以后慢慢挖掘。 这里先写一下vim中简单的使用cscope,以便能够在源代码中: 1. 快速切换至函数的定义。 2. 函数的声明. 3. 查找某个函数被使用的情况。 首先,让vim支持cscope,在~/.vimrc中加入: "set cscopequickfix=s-,c-,d-,i-,t-,e-" 其次,要在源代码目录内生成相关的cscope的信息. 这里以libpcap代码为例 #cd /usr/code/libpcap #cscope -Rbq #把生成的cscope文件导入到vim中来 #:cs add /usr/code/libpcap/cscope.out /usr/code/libpcap/ 下面就可 阅读全文
posted @ 2008-04-21 16:36 shipfi 阅读(19908) 评论(1) 推荐(0)
摘要:在bash脚本编程中,有些地方比较容易迷惑,也容易出错。 今天就碰到一例,例如: if["$UID" -ne "$ROOT_UID"] then echo "Must be root to run this script" exit $E_NOTROOT fi 就以上几行代码,就有两处错误。 1) if和[之间没有空格。 产生错误。 2) [和"之间,"和]之间没有空格,产生错误。 也行是写C代码写习惯了,不经意间就像写C程序一样的语法和格式。 其实,为什么要有空格也比较好理解,因为是shell脚本嘛,最终还是执行的shell命令。如果没有空格,以上语句: if["$UID" -ne "$ROOT_UID"] shell完全可以理解成: if["$UID" -->由于没有空格,它会不会是命令呢???? 所以,在写shell脚本的时候,空格是一定要注意的。 阅读全文
posted @ 2008-04-19 23:37 shipfi 阅读(432) 评论(0) 推荐(0)
摘要:程序有两个功能: 1. 使用system函数调用shell命令,shell命令在启动程序参数中给出。 2. shell程序退出时可以获得其退出状态。 以上程序是根据APUE里的例子来实现的。可以参考8.6和8.13节。 阅读全文
posted @ 2008-04-18 16:31 shipfi 阅读(1318) 评论(0) 推荐(0)
摘要:最近在看Stevens的《Unix环境编程》,其中第八章讲到了进程的控制,里面有关于僵死进程的描述,但看完后还是不是很了解。 网上有一篇《浅议Unix的defunct进程》的文章,其原理描述的比较详细有用,所以转载到此。 本文出自:http://www2.ccw.com.cn 作者: 张道新 赵国明 阅读全文
posted @ 2008-04-18 11:27 shipfi 阅读(897) 评论(0) 推荐(0)
摘要:1. 在源程序中的最上层目录键入ctags命令: 例如,在/home/shipfi/Code/Qoe目录下键入: #ctags -R 以上命令会在当前目录下生成tags文件。 2. 当使用vim打开文件后,键入以下命令: :set tags=/home/shipfi/Code/Qoe/tags 3.以上设置后,就可以在源文件中使用Ctrl+]来进行源文件中的相关函数的跳转。 4.也可以将这句话放到~/.vimrc中去, 如果你经常在这个工程编程的话. 5.如果此时你还想再跳回刚才的位置, 你还可以按 6.修改程序后, tags文件不能自动rebuild, 你必须手动再运行一下命令: #ctags -Rt 关于taglist.及更多的vim操作,可查看: http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx 阅读全文
posted @ 2008-04-12 23:32 shipfi 阅读(703) 评论(0) 推荐(0)
摘要:为了提高工作效率,以下几个知识点需要在有闲暇或者专门抽取时间加紧学习,并熟练使用. 1.awk,sed的熟练使用. ---处理文本,数据的一把利器.Linux 和UNIX 工具箱中最有用的工具之一. 争取熟练掌握. 2.bash编程. ---Unix/Linux下基础的东东. 会及大提高效率. 需要多加练习. 3.gdb, strace的使用. ---程序调试,跟踪. 在Unix/Linux下写程序不可避免要用到. 4. vim熟练使用. ---一个优秀的文本编辑器. 熟练使用后,及大提高写代码,操作文件的效率. 5.正则表达式的学习. ---匹配,替换,操作字符利器. 6.python脚本语言学习. ---让解决实际应用尽可能简单化. 好像就这么多了, 希望一切顺利吧. 阅读全文
posted @ 2008-04-11 11:28 shipfi 阅读(304) 评论(0) 推荐(0)
摘要:转载的一篇文章,介绍了Unix及FreeBSD的起源和历史. 阅读全文
posted @ 2008-04-10 16:12 shipfi 阅读(606) 评论(0) 推荐(0)
摘要: Linux中语言的设置和本地化设置真是一个很繁琐的事情,时不时的会出现乱码的情况,在这篇文章中讨论的是shell中出现乱码的一些解决方法. 一般来说,linux中显示什么语言是通过环境变量来确认的. 这些环境变量包括: $LANG / $LANGUAGE / $LC_CTYPE .... 可以通过locale命令查看这些变量的值. 要设置这些变量,可以通过export命令来进行.如: # export LANG=uc_EN # export LC_CTYPE=c 可以把以这些命令加入到~/.bash_profile文件中,这样,就成了默认配置. 另外,文件/etc/sysconfig/i18n 也是可以配置语言选项的. 阅读全文
posted @ 2008-04-10 11:30 shipfi 阅读(38549) 评论(0) 推荐(0)
摘要:把以下设置添加到.vimrc中。 set encoding=utf-8 set fileencodings=utf-8,chinese,latin-1 if has("win32") set fileencoding=chinese else set fileencoding=utf-8 endif language message zh_CN.utf-8 "解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim "set font set guifont=Nsimsun 阅读全文
posted @ 2008-04-07 10:57 shipfi 阅读(2503) 评论(0) 推荐(0)
摘要:Windows下有很多软件可以用来转换文件的编码,例如将BIG5编码转成GB2312的 在Linux下其实也可以完成这样的工作 这个命令就是iconv 例如要将一个编码格式是GB2312的文本文件foo.txt转成BIG5的内码可以用 iconv -f GB2312 -t BIG5 foo.txt > foo1.txt 这样新的文件foo1.txt就是BIG5内码的了 将内码是BIG5的文件f... 阅读全文
posted @ 2008-04-03 21:29 shipfi 阅读(504) 评论(0) 推荐(0)