- 博客(52)
- 收藏
- 关注
转载 linux的时区设置函数tzset()
本文转载于: http://hi.baidu.com/peruke/blog/item/b8de06ec6a04583b27979132.html tzset#incude void tzset(void);设置时间环境变量。说明tzset()函数使用环境变量TZ的当前设置把值赋给三个全局变量:daylight,timezone和tznam
2014-01-14 15:25:14
5206
原创 test
//////////////main.hclass animal{public:animal(){cout<<"animal"<<endl;}virtual ~animal(){cout<<"~animal"<<endl;}public:virtual void speak(){cout<<"no speak"<<endl;}void smile();};
2014-01-13 10:27:58
663
原创 继承与多态
虚函数只要在基类里定义,所以继承类都不用重新定义为虚函数,自动成为虚函数。虚函数必须有实现,普通成员函数在没有调用时可以没有实现(定义)。//////////////main.hclass animal{public:animal(){coutvirtual ~animal(){coutpublic:virtual void speak(){cout
2014-01-13 10:19:18
783
转载 迭代器实现代码
#include using namespace std;template class my_iterator{//friend class my_iterator;public:my_iterator(T *value=NULL){_value=value;}//~my_iterator()//该不该加?//{//}T& operator*
2013-12-20 17:11:51
816
原创 # ## @#(字符串化操作符,粘接附,字符化操作符)
1. 字符串化操作符##include #include using namespace std;#define warn_if(x)\do{\ if(x)\ printf("warn "#x"\n");\}while(0);int main(){ int eric=3; warn_if(eric==3)
2013-12-20 10:30:33
955
原创 linux shell
1. 使用命令输出赋值给变量注意1)变量名称后面不能有空格,直接跟=2)=后面不能直接连接命令,=与后面的命令应该用空格隔开
2013-07-04 14:42:10
553
原创 文件与磁盘位置的对应
从虚拟化系统映射到windows客户端磁盘,在格式化写文件后怎样确定文件在真实磁盘上的位置1. 在windows客户端使用Disk Investigator查看文件sector为2259864,点击view的disk可以看到隐藏的sector数 Hidden sectors: 63, 2259864+63即为磁盘的真实位置。2. 验证,使用dd if=/dev/zvolxxx
2013-05-03 09:35:13
1364
原创 solaris event
App:#include #include static int32_t attr_int32;#define CLASS1 EC_ALL#define CLASS2 "class2"#define SUBCLASS_1 "subclass_1"#define SUBCLASS_2
2013-04-07 14:08:50
838
原创 solaris 内核模块想关性
模块a想引用模块b的函数,怎样引用?内核模块中的函数都是全局的,所以模块b不需要特意导出函数。模块a在连接时需要使用以下flag-dy -Ndrv/模块名LDFLAGS += -dy -Ndrv/stmf -Nfs/zfs -Ndrv/vicm其中vicm在/usr/kernel/drv/amd64中。这样就可以连接过了。
2012-11-15 14:18:26
883
原创 一个solaris下的Makefile文件
all: vicmdrivername = vicm# which compilerCC = cc# which linkerLD = ld# options for compile#CFLAGS = -D_KERNEL -m64 -xarch=sse2a -xmodel=kernel -c#options for compi
2012-11-15 13:59:47
1424
转载 linux下scp命令详解
linux下scp命令详解http://www.9usb.net/201006/linux-scp-mingling-yongfa.htmlscp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录.scp命令的用处:scp在网络上不同的主机之间复制文件,
2012-11-08 16:53:25
743
转载 Linux LVM管理
对于Linux用户而言,在安装一台Linux机器的时候,遇到的问题之一就是给各分区估计和分派足够的硬盘 空间。无论对一个正在为服务器寻找空间的系统管理员,还是一个磁盘即将用尽的普通用户来说,这都是一个非常常见的问题。解决的方法通常是使用符号链接,或 者一些调整分区大小的工具(比如parted)。但是,这只是一个暂时性的解决办法,不久,我们又会面临同样的问题。 如果你是一个站点的系统
2012-10-30 14:11:05
699
转载 DAS、NAS、SAN区别
存储方式介绍DAS、NAS和SAN是目前主流的存储技术。DAS是直连式存储,存储设备直接和服务器连 接,接口为IDE或者SCSI;NAS是网络附加存储,采用网络技术,通过交换机连接存储系统(服务器),接口为TCP/IP;SAN是存储区网络,采用 FC(光纤通道),将存储系统网络化,接口为FC(光纤通道)。v DAS(直连式存储)介绍DAS是以服务器为中心的存储结构,就是将存储设备直
2012-07-19 16:30:15
4009
原创 solaris 中的highbit和lowbit函数
i从0到256,测试highbit和lowbit结果如下, 从结果看,对highbit来说, 当2^n i=0highbit=0lowbit=0i=1highbit=1lowbit=1i=2highbit=2lowbit=2i=3highbit=2lowbit=1i=4highbit=3lowbit=3i=5highbit=3
2012-07-04 11:17:25
3208
转载 openindiana下配置静态IP
IntroductionOpenIndiana 151a is by default installed to use NWAM and DHCP dynamic IPs. In many situations it would be preferred to set up a static IP for the server, something which is difficult
2012-06-28 15:53:09
2480
转载 socket函数read write send和recv
一旦,我们建立好了tcp连接之后,我们就可以把得到的fd当作文件描述符来使用。由此网络程序里最基本的函数就是read和write函数了。ssize_t write(int fd, const void*buf,size_t nbytes);write函数将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数.失败时返回-1. 并设置errno变量. 在网络程序中,当我
2012-06-26 09:09:01
756
转载 Linux - socket编程处理EINTR错误
在linux的socket编程中,经常要处理EINTR错误,其值为4,用strerror(errno)调用返回的错误描述为:Interrupted system call. 这里给出一个connect连接中对EINTR处理的网址: http://www.madore.org/~david/computers/connect-intr.html 另外转载网络上其他兄弟对E
2012-06-26 08:37:47
972
转载 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
关于socket阻塞与非阻塞情况下的recv、send、read、write返回值1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 0接收到数据大小,特别:返回值 2、阻塞模式与非阻塞模式下write的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞write返回值没有区分,都是 0发送数据大小
2012-06-26 08:26:04
1006
原创 solaris 下的bxx函数
solairs下有一组函数:void bzero(void *, size_t); //内存初始化函数void bcopy(const void *, void *, size_t);// 拷贝函数, 当目标和源重叠时可以保证能正确处理。int bcmp(const void *, const void *, size_t); //内存字节比较函数ANSI标准的内存
2012-06-19 17:32:21
3031
转载 树的先序、中序和后序遍历方式
前序遍历前序遍历(DLR)前序遍历也叫做先根遍历、先序遍历,可记做根左右。前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。若二叉树为空则结束返回,否则:(1)访问根结点。(2)前序遍历左子树。(3)前序遍历右子树。需要注意的是:遍历左右子树时仍然采用前序遍历方
2012-06-13 16:56:25
91749
原创 printf输出多列时的列对齐
列左对齐printf("%-*s", 20, string); 表示输出字符串左对齐输出20,如果字符串不够20个,以空格补齐。 -表示左对齐。例:struct help_struct{char *option_name;char *option_value;char *option_ext;};struct help_struct opti
2012-05-25 10:03:30
16896
原创 关于网络的几个命令
在windows下:nbtstat 显示基于TCP/IP 的NetBIOS协议统计资料nbtstat -a IP可以显示IP主机的主机名称和MAC地址netstat命令提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。arp命令arp命令ARP 缓存中包含一个或多个表,它们用于存储 IP 地址
2012-05-22 08:50:11
560
转载 可变参数宏
在 GNU C 中,宏可以接受可变数目的参数,就象函数一样,例如:#define pr_debug(fmt,arg...) \printk(KERN_DEBUG fmt,##arg)用可变参数宏(variadic macros)传递可变参数表你可能很熟悉在函数中使用可变参数表,如:void printf(const char* format, …);直到最近,可
2012-01-06 14:56:37
598
原创 solaris驱动开发
驱动开发步骤:1 创建开发目录和文件创建驱动程序文件。2 编写可加载模块配置的入口点即初始化和卸载。int _init(void) _init入口点首先调用ddi_soft_state_init函数来初始化软状态,若失败则返回错误代码,若成功,_init调用mod_install加载新模块,若加载失败调用ddi_soft_state_fini并返
2011-11-16 20:52:38
3028
1
转载 kmem_cache_alloc, kmem_cache_create, struct kmem_cache
来自:http://linux.chinaunix.net/bbs/viewthread.php?tid=913690 为了更好的得到问题解决,也对问题的提出进点义务,在抛出我的问题前先简单介绍一下Linux下slab高速缓存的使用方法。在内核编程中,可能经常会有一些数据结构需要反复使用和释放,按照通常的思路,可能是使用kmalloc和kfree来实现。但是这种方式效率不高,L
2011-11-03 17:08:19
6034
转载 物理地址 虚拟地址
Windows 2000 使用基于分页机制的虚拟内存。每个进程有4GB的虚拟地址空间。基于分页机制,这4GB地址空间的一些部分被映射了物理内存,一些部分映射硬盘上的交换文件,一些部分什么也没有映射。程序中使用的都是4GB地址空间中的虚拟地址。而访问物理内存,需要使用物理地址。下面我们看看什么是物理地址,什么是虚拟地址。 物理地址 (physical address): 放在寻址总线
2011-10-24 10:49:05
648
转载 DEFINE_PER_CPU
转自 http://www.unixresources.net/linux/clf/linuxK/archive/00/00/47/91/479165.html首先,在arch/i386/kernel/vmlinux.lds中有/*will be free after init*/.=ALIGN(4096);__init_begin=.;/*省略*/.ALIGN
2011-10-21 14:16:12
4008
1
转载 linux内核的 等待队列 使用方法,wait_queue_head_t,进程休眠
以下来自:http://www.yuanma.org/data/2006/1207/article_1916.htm假设我们在 kernel 里产生一个 buffer,user 可以经由read,write 等 system call 来读取或写资料到这个 buffer 里。如果有一个 user 写资料到 buffer时,此时 buffer 已经满了。那请问你要如何去处理这种情形呢 ? 第一种
2011-10-21 10:45:30
803
转载 linux 命令英文全称
linux命令英文全称/bin = BINaries/dev = DEVices/etc = ETCetera/lib = LIBrary/proc = PROCesses/sbin = Superuser BINaries/tmp = TeMPo
2011-10-18 15:56:48
623
转载 linux 命令英文全称
linux命令英文全称/bin = BINaries/dev = DEVices/etc = ETCetera/lib = LIBrary/proc = PROCesses/sbin = Superuser BINaries/tmp = TeMPo
2011-10-18 15:55:59
815
原创 静态连接库与动态链接库
静态链接库(简称静态库)和动态连接库(简称动态库)在windows编程过程中经常碰到,很多人都在用,如果详细追究也没几个人能说的清楚。自己以前看过多次,每次看都不是很完整,看过之后不久也就忘记了。希望通过这次总结可以加深印象,提升对库的理解,本文章所用vs为vc6.0。1、静
2011-10-13 19:22:03
742
转载 Linux线程同步(3): 读写锁(rwlock)
http://blog.csdn.net/dai_weitao/article/details/1752843 在线程同步系列的第一篇文章里已经说过, 读写锁是因为有3种状态, 所以可以有更高的并行性.1. 特性: 一次只有一个线程可以占有写模式的读写
2011-10-13 15:38:12
541
转载 linux 原子操作
http://tech.163.com/06/0215/10/2A0D47RQ000915A2.htmlatomic_t的定义typedef struct { volatile int counter;} atomic_t;原子操作的定义
2011-10-11 15:43:13
579
转载 在设备驱动中添加属性页
Click Here to Download: Code Associated With This Article Zip Archive, 45KBIn this article, I am going to show you how to create a cus
2011-09-20 14:50:17
2350
原创 驱动中打印系统时间
在驱动中打印本地时间三个步骤:1、在驱动中调用KeQuerySystemTime获取GMT系统时间2、调用ExSystemTimeToLocalTime将GMT系统时间转换为本地系统时间3、调用RtlTimeToTimeFields将本地时间转换为TIME_FIE
2011-09-16 09:27:06
2492
转载 《Windows内核编程》---内核模式下字符串的基本操作
驱动程序中字符串操作涉及到ASCII字符串、宽字符串,还有DDK定义的ANSI_STRING数据结构和UNICODE_STRING数据结构。 1)ASCII字符串和宽字符串在应用程序中使用两种字符:一是char型字符串,负责记录ANSI字符集,它是指向一个char数组
2011-09-15 17:22:11
1043
转载 vc 6.0中开发驱动设备程序配置方法
通常驱动程序的调试都是用ddk在cmd中完成的。这部分我暂时略过。下面先介绍如何设置vc++6.0在Visual Studio 6.0集成环境中开发设备驱动程序的方法。在Windows上,Windows DDK提供的开发环境是基于命令行的,操作起来极为不便,而Visual S
2011-09-14 11:14:54
1113
原创 关于inf文件
大部分人都会安装驱动程序,但不是每个会安装驱动的人都可以看的懂inf文件格式,甚至很多写过一点驱动的人都不是很明白,结合网上看到的关于inf文件的介绍和WDM书籍的介绍,写一些自己的理解。INF是DeviceInformation File的缩写,是微软公司为硬件厂商发布硬件
2011-09-14 11:11:16
6375
1
转载 fopen 文本文件与二进制文件区别
在学习C语言文件操作后,我们都会知道打开文件的函数是fopen,也知道它的第二个参数是 标志字符串。其中,如果字符串中出现'b',则表明是以打开二进制(binary)文件,否则是打开文本文件。 那么什么是文本文件,什么是二进制文件呢? 可能大多数人都没有仔细考虑过。
2011-09-09 14:19:14
3604
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人