摘要: bash编程中的几个注意点。记下,以备忘。  阅读全文
posted @ 2008-06-12 23:39 shipfi 阅读(14) | 评论 (0)编辑
     摘要: Makefile的写法.
不懂,比较烦.尤其是涉及规则的时候.真是烦透了.  阅读全文
posted @ 2008-05-28 16:50 shipfi 阅读(31) | 评论 (1)编辑
     摘要: 在看《Unix环境编程》这本书的时候,这三个概念一直闹得不清楚. 书上讲得也不是太仔细(太高估俺的智商啦).
一方面,涉及到多进程IPC的程序中关于uid的设置,代码看得让人摸不着头脑.
网上有这方面的说明,中文太多的文章都是了了.且一成不变,都是一大抄.

还是chinaunix上面对于这几个概念回答的比较到位. 有深度也有广度.


这篇贴子在:http://bbs.chinaunix.net/viewthread.php?tid=820766  阅读全文
posted @ 2008-05-14 17:21 shipfi 阅读(46) | 评论 (0)编辑
     摘要: vim+taglist+ctags使用说明.
另,再附上我在Linux中的.vimrc配置  阅读全文
posted @ 2008-05-08 00:38 shipfi 阅读(128) | 评论 (0)编辑
     摘要: 对于windows中的_vimrc配置,
只是解决了中文乱码的问题,可以在日文OS中显示中文.
另外,对于显示日文,需要手动配置一下.  阅读全文
posted @ 2008-05-07 11:26 shipfi 阅读(45) | 评论 (0)编辑
     摘要: typedef与函数指针的一些常用法。
另外,以下这篇文章也对函数指针有一个很好的说明。
http://teren.itpub.net/post/15914/189516  阅读全文
posted @ 2008-05-06 12:56 shipfi 阅读(29) | 评论 (0)编辑
     摘要: 命令包括:
(1) 移动
(2) 匹配
(3) 操作
(4) 删除
(5) 取代及还原
(6) 加上数目字:
(7) 格式化文本:
(8) 复制(yank)
  阅读全文
posted @ 2008-05-04 22:16 shipfi 阅读(34) | 评论 (0)编辑
     摘要: 使用sigaction来实现signal函数,然后用一个例子测试一下.
该例子打印3的倍数,两秒运行后接收到SIGALRM信号. 超时退出.  阅读全文
posted @ 2008-04-23 17:25 shipfi 阅读(45) | 评论 (0)编辑
     摘要: 以下是可以直接用来在C源程序中使用的宏函数,用来得到一些信息。包括打印源文件名,行数,日期,时间等。

对于这些调试信息,还可以进行扩充。

  阅读全文
posted @ 2008-04-22 22:29 shipfi 阅读(27) | 评论 (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 阅读(86) | 评论 (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 阅读(25) | 评论 (0)编辑
     摘要: 程序有两个功能:
1. 使用system函数调用shell命令,shell命令在启动程序参数中给出。
2. shell程序退出时可以获得其退出状态。

以上程序是根据APUE里的例子来实现的。可以参考8.6和8.13节。  阅读全文
posted @ 2008-04-18 16:31 shipfi 阅读(63) | 评论 (0)编辑
     摘要: 最近在看Stevens的《Unix环境编程》,其中第八章讲到了进程的控制,里面有关于僵死进程的描述,但看完后还是不是很了解。

网上有一篇《浅议Unix的defunct进程》的文章,其原理描述的比较详细有用,所以转载到此。

本文出自:http://www2.ccw.com.cn 作者: 张道新 赵国明   阅读全文
posted @ 2008-04-18 11:27 shipfi 阅读(61) | 评论 (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 阅读(47) | 评论 (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 阅读(29) | 评论 (0)编辑
     摘要: 转载的一篇文章,介绍了Unix及FreeBSD的起源和历史.  阅读全文
posted @ 2008-04-10 16:12 shipfi 阅读(32) | 评论 (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 阅读(106) | 评论 (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 阅读(54) | 评论 (0)编辑