07 2013 档案

摘要:但是linux世界上还有另外一种东东,叫做信号,来处理突发事件。如果系统调用尤其是阻塞型的系统调用遇到信号,怎么办呢?是等系统调用game over以后再处理信号,还是中断系统调用,尽快将信号投递到进程呢? 想想前面提到的例子,如果wait等的子进程5天后才能退出,父进程的信号投递将等的花儿都谢了。所以对于阻塞性的调用,必须阻止这种情况的发生。 一般来讲,一个系统调用,要么成功,要么失败,但是由于为了及时处理信号,出现了第三种情况,系统调用被信号中断,为了标识这种情况,错误码errno 置为EINTR。我们看到了,这个世界并不完美,编程同样也不完美。这也就是前文引用的errno == E... 阅读全文
posted @ 2013-07-31 09:03 Mr.Shadow 阅读(375) 评论(0) 推荐(0)
摘要:具体的可以在linux环境下 用tar --help查看详细说明格式:tar [option] file -c create create a new archive -x extract extract files from an archive -t list list the contents of an archive其中c/x/t不能同时存在 -z --gzip, --gunzip, --ungzip filter the archive through gzip -j, --bzip2 filter the archive through bzip2 -f, --file=ARCH 阅读全文
posted @ 2013-07-27 21:56 Mr.Shadow 阅读(2462) 评论(0) 推荐(0)
摘要:功能和strcmp类似,用法也一样. 特别注意:strcoll()会依环境变量LC_COLLATE所指定的文字排列次序来比较s1和s2 字符串。 strcmp是根据ASCII来比较2个串的. 说明若LC_COLLATE为"POSIX"或"C",则strcoll()与strcmp()作用完全相同 阅读全文
posted @ 2013-07-21 09:56 Mr.Shadow 阅读(751) 评论(0) 推荐(0)
摘要:一、ctag 当然,第一步就是要下载它!一条命令搞定:$sudo apt-get install ctags如果不幸提示找不到软件包ctags,首先你也许应该update一下你的软件源,还不行的话试试把ctags改成 exuberant-ctags下载完了你就可以用它来产生我们的标签文件tags 了,tags文件是实现跳转功能的英雄,就是它把我们送到我们想要去的地方的——比如我在我的程序里写了一个库函数foo,在某个时刻我想查看这个库函数本身是怎么实现的?那我只需把光标停在关键词上,再按一下组合键 ( ctrl + ] ) 就会立刻帮我跳转到库函数foo的源代码的地方,按一下组合键 (... 阅读全文
posted @ 2013-07-19 14:18 Mr.Shadow 阅读(1901) 评论(0) 推荐(0)
摘要:1. 为什么会出现undefined reference to 'xxxxx'错误?首先这是链接错误,不是编译错误,也就是说如果只有这个错误,说明你的程序源码本身没有问题,是你用编译器编译时参数用得不对,你没有指定链接程序要用到得库,比如你的程序里用到了一些数学函数,那么你就要在编译参数里指定程序要链接数学库,方法是在编译命令行里加入-lm。2.-l参数和-L参数-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。- 阅读全文
posted @ 2013-07-05 15:57 Mr.Shadow 阅读(2559) 评论(0) 推荐(0)