04 2008 档案
摘要:使用sigaction来实现signal函数,然后用一个例子测试一下.
该例子打印3的倍数,两秒运行后接收到SIGALRM信号. 超时退出.
阅读全文
摘要:以下是可以直接用来在C源程序中使用的宏函数,用来得到一些信息。包括打印源文件名,行数,日期,时间等。
对于这些调试信息,还可以进行扩充。
阅读全文
摘要:在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/
下面就可
阅读全文
摘要:在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脚本的时候,空格是一定要注意的。
阅读全文
摘要:程序有两个功能:
1. 使用system函数调用shell命令,shell命令在启动程序参数中给出。
2. shell程序退出时可以获得其退出状态。
以上程序是根据APUE里的例子来实现的。可以参考8.6和8.13节。
阅读全文
摘要:最近在看Stevens的《Unix环境编程》,其中第八章讲到了进程的控制,里面有关于僵死进程的描述,但看完后还是不是很了解。
网上有一篇《浅议Unix的defunct进程》的文章,其原理描述的比较详细有用,所以转载到此。
本文出自:http://www2.ccw.com.cn 作者: 张道新 赵国明
阅读全文
摘要: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
阅读全文
摘要:为了提高工作效率,以下几个知识点需要在有闲暇或者专门抽取时间加紧学习,并熟练使用.
1.awk,sed的熟练使用.
---处理文本,数据的一把利器.Linux 和UNIX 工具箱中最有用的工具之一.
争取熟练掌握.
2.bash编程.
---Unix/Linux下基础的东东. 会及大提高效率. 需要多加练习.
3.gdb, strace的使用.
---程序调试,跟踪. 在Unix/Linux下写程序不可避免要用到.
4. vim熟练使用.
---一个优秀的文本编辑器. 熟练使用后,及大提高写代码,操作文件的效率.
5.正则表达式的学习.
---匹配,替换,操作字符利器.
6.python脚本语言学习.
---让解决实际应用尽可能简单化.
好像就这么多了, 希望一切顺利吧.
阅读全文
摘要:转载的一篇文章,介绍了Unix及FreeBSD的起源和历史.
阅读全文
摘要: Linux中语言的设置和本地化设置真是一个很繁琐的事情,时不时的会出现乱码的情况,在这篇文章中讨论的是shell中出现乱码的一些解决方法.
一般来说,linux中显示什么语言是通过环境变量来确认的. 这些环境变量包括:
$LANG / $LANGUAGE / $LC_CTYPE ....
可以通过locale命令查看这些变量的值.
要设置这些变量,可以通过export命令来进行.如:
# export LANG=uc_EN
# export LC_CTYPE=c
可以把以这些命令加入到~/.bash_profile文件中,这样,就成了默认配置.
另外,文件/etc/sysconfig/i18n 也是可以配置语言选项的.
阅读全文
摘要:把以下设置添加到.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
阅读全文
摘要:Windows下有很多软件可以用来转换文件的编码,例如将BIG5编码转成GB2312的 在Linux下其实也可以完成这样的工作 这个命令就是iconv 例如要将一个编码格式是GB2312的文本文件foo.txt转成BIG5的内码可以用 iconv -f GB2312 -t BIG5 foo.txt > foo1.txt 这样新的文件foo1.txt就是BIG5内码的了 将内码是BIG5的文件f...
阅读全文
浙公网安备 33010602011771号