- 博客(16)
- 资源 (148)
- 收藏
- 关注
转载 C++关键字:mutable、volatile、explicit以及__based
mutable关键字 关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对像的状态也会随之发生变化!如果一个类的成员函数被声明为const类型,表示该函数不会改变对象的状态,也就是该函数不会修改类的非静态数据成员.但是有些时候需要在该类函数中对类的数据成员进行赋值.
2013-06-28 15:05:13 401
转载 Gcc扩展:__attribute__((constructor))
__attribute__((constructor)),看样子又是Gcc的扩展,从注释知道这个关键字的作用是让被修饰函数在main函数开始之前调用。不过,还是顺便好奇了一下下,翻了一下Gcc的手册,由于我测试机器上的Gcc版本是4.1.1,所以查看了4.1.2版本的文档。对于__attribute__ ,解释如下: Declaring Attributes of Fu
2013-06-25 20:01:50 1287
转载 UNIX下的LD_PRELOAD环境变量
转载:http://blog.csdn.net/haoel/article/details/1602108前言 也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久。不过,在这里,我还是想讨论一下这个环境变量。因为这个环境变量所带来的安全问题非常严重,值得所有的Unix下的程序员的注意。 在开始讲述为什么要当心LD_PRELOAD环境变量
2013-06-25 20:00:40 532
转载 gcov lcov (一)
Gcov作为gnu/gcc工作组件之一,是一款的免费的代码覆盖率测试工具,而且可以结合lcov生成美观的html的测试报表。本文介绍一些gcov的使用方法,基本原理,一些实际中可能会遇到的问题以及解决思路。Gcov的用法1.1 编译Gcov的使用方法很简单,首先需要给gcc编译的时候打开覆盖测试的开关例如要对srcfile.c单个文件生成的程序进行代码覆
2013-06-25 19:52:31 2768
转载 linux dos2unix 和 unix2dos
用途说明dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是 0A。DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且
2013-06-25 16:05:33 549
原创 unix domain socket判断客户端断开连接
1. 使用Poll管理的时候,可以用 pollfd 的 revents来判断客户端fd是否断开,比如 POLLHUP2. 使用Select 管理的时候,不管是阻塞或者是非阻塞的 fd, 都可以用 read 或者 recv 返回值为 0 来判断客户端是否断开连接。注意的非阻塞的 fd,在数据没有准备好的时候,要判断errno 为 EWOULDBLOCK 或者 EAGAIN3. send 的时
2013-06-24 18:31:58 2276
转载 内存耗用:VSS/RSS/PSS/USS
TermsVSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)一般来说内
2013-06-21 15:46:19 778
转载 Linux设备驱动之I/O端口与I/O内存
一、统一编址与独立编址该部分来自于:http://blog.chinaunix.net/space.php?uid=21347954&do=blog&id=443670,感谢mason_hu的分享。 从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接
2013-06-19 16:10:00 589
转载 linux mmap (二)
Linux设备驱动之mmap设备操作1.mmap系统调用void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);功能:负责把文件内容映射到进程的虚拟地址空间,通过对这段内存的读取和修改来实现对文件的读取和修改,而不需要再调用read和write;参数:addr:映射的起始
2013-06-19 16:08:13 617
转载 linux mmap (一)
一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系统调用.
2013-06-19 16:05:35 544
转载 linux下tmpfs
默认linux系统开机时就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘)一样,但其实是不一样的。像虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。 tmpfs有以下优
2013-06-19 11:03:41 550
转载 Linux进程间通信(IPC)
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间
2013-06-12 19:13:29 791
转载 UNIX共享内存总结
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。因此,采用共享内存的
2013-06-11 18:30:00 596
转载 Non-blocking I/O and select()
The following sample program uses non-blocking and the select() API. See Example: Generic client for an example that contains the code for a common client job that can be used with this example.
2013-06-09 17:19:34 1113
转载 Linux IO - 同步,异步,阻塞,非阻塞
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不
2013-06-09 16:16:38 697
转载 fcntl设置FD_CLOEXEC标志有什么用
close on exec, not on-fork, 意为如果对描述符设置了FD_CLOEXEC,使用execl执行的程序里,此描述符被关闭,不能再使用它,但是在使用fork调用的子进程中,此描述符并不关闭,仍可使用。eg:jamie@jamie-laptop:~$ cat test.c#include #include #include #include int
2013-06-08 20:47:43 622
Linux课件ppt及常用Linux命令集
2009-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人