SunBo

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2009年8月4日

摘要: Linux中/proc目录下文件详解(1)2008-06-10 20:10声明 :可以自由转载本文,但请务必保留本文的完整性。作者 :张子坚email :zhangzijian@163.com说明 :本文所涉及示例均在fedora core3下得到。 参考文献 :《GNU/linux编程指南》[美]Kurt Wall等著 张辉 译 SAMS 清华大学出版社 --------------------------------------------------------------------------------/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在 阅读全文
posted @ 2009-08-04 15:27 SunBo 阅读(241) 评论(0) 推荐(0)

2009年7月31日

摘要: 2007 年 12 月 03 日在文件系统方面,Linux® 可以算得上操作系统中的 “瑞士军刀”。Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统。对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台。本文讨论 Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构。 基本的文件系统体系结构Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的 API 函数,Linux 可以在许多种存储设备上支持许多种文件系统。例如,read 函数调用可以 阅读全文
posted @ 2009-07-31 17:59 SunBo 阅读(240) 评论(0) 推荐(0)

2009年7月30日

摘要: #include <iostream>#include <stdarg.h>const int N=5;using namespace std;void Stdarg(int a1,...){ va_list argp; int i; int ary[N]; va_start(argp,a1); ary[0]=a1; for(i=1;i< N;i++) ary[i]=va_arg(argp,int); va_end(argp); for(i=0;i< N;i++) cout<<ary[i]<<endl;}void main... 阅读全文
posted @ 2009-07-30 17:59 SunBo 阅读(1301) 评论(0) 推荐(0)

摘要: int arg(unsigned char a);int main(){ float b = 11.0; arg(b); return 0;}int arg(unsigned char a){ float c = 5.0; float d = 6.6; printf("arg = %d/n", a); printf("/n"); printf("c = %f(float)/n", c); printf("c = %d(int)/n", c); printf... 阅读全文
posted @ 2009-07-30 17:29 SunBo 阅读(1013) 评论(0) 推荐(0)

2009年7月24日

摘要: 1、防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif2、重新定义 一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedefunsigned charboolean; /* Boolean value type. */typedefunsigned long intuint32;/* Unsigned 32 bit value */typedefunsigned short uint16;/* Unsigned 16 bit value */typedefunsigned charuint8; / 阅读全文
posted @ 2009-07-24 17:54 SunBo 阅读(304) 评论(0) 推荐(0)

摘要: 检测一个无符号数是不为2^n-1(^为幂): x&(x+1)将最右侧0位改为1位: x | (x+1)二进制补码运算公式:-x = ~x + 1 = ~(x-1)~x = -x-1 -(~x) = x+1~(-x) = x-1x+y = x - ~y - 1 = (x|y)+(x&y) x-y = x + ~y + 1 = (x|~y)-(~x&y) x^y = (x|y)-(x&y)x|y = (x&~y)+yx&y = (~x|y)-~xx==y: ~(x-y|y-x)x!=y: x-y|y-xx< y: (x-y)^((x^y)&am 阅读全文
posted @ 2009-07-24 17:52 SunBo 阅读(309) 评论(0) 推荐(0)

摘要: 关于gcc,libc等相关概念的理解 1、gcc(gnu collect compiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等。Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。 Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文 阅读全文
posted @ 2009-07-24 15:27 SunBo 阅读(457) 评论(0) 推荐(0)

2009年7月21日

摘要: 相信大家对Chinglish早已经见怪不怪了,就连上世纪30年代逐字翻译的中式英语Long time no see(很久不见),也大张旗鼓地进入了英语标准词组的“领地”。像类似的一些“中式逐字翻译原创版”,也正在逐渐被老外们所接受;但有些情况则不同,已有的英文词句的表意往往并非是单词的真正意思,如果一不留神就会酿成“英语尴尬”,闹笑话不说,表错了意有时还会带来不少误会。就像一位博友在加拿大的亲身经历——他刚到加拿大的时候看到很多大厦门口都有smoke free的标志,因此由衷地感叹道:“加拿大就是好,抽烟都免费。” 你犯过类似的错误吗?不管有没有,都千万不要小看这些容易造成误会的“危险词句”. 阅读全文
posted @ 2009-07-21 20:07 SunBo 阅读(246) 评论(0) 推荐(0)

摘要: 今天,在review 一些代码的时候,看到了strtol()这个函数,由于以前使用它的时候,还没有深刻的了解,这次,我决定探个究竟。网上关于这个函数的资料大都来源于同份资料,linux库函数,讲的不够细致。于是,我花了几个小时,认真地尝试其功能,并整理了这篇文章,希望能对C语言的爱好者一些帮助。希望大家能够将本文中发现的错误及时反馈给我,以便修正。我的信箱是wp.qin@sunmedia.com 。+----------------+| strtol |+----------------+i.e. string to longlong int strtol(const char *nptr, 阅读全文
posted @ 2009-07-21 09:16 SunBo 阅读(3557) 评论(0) 推荐(0)

2009年7月15日

摘要: 转自: zzzppp.cublog.cn 细心之人啊The History of GCC 1984年,Richard Stallman发起了自由软件运动,GNU (Gnu's Not Unix)项目应运而生,3年后,最初版的GCC横空出世,成为第一款可移植、可优化、支持ANSI C的开源C编译器。GCC最初的全名是GNU C Compiler,之后,随着GCC支持的语言越来越多,它的名称变成了GNU Compiler Collection。这里介绍的gcc是GCC的前端,C编译器.警告信息 -Wall : 显示所有常用的编译警告信息。 -W : 显示更多的常用编译警告,如:变量未使用、 阅读全文
posted @ 2009-07-15 17:25 SunBo 阅读(228) 评论(0) 推荐(0)