life's a struggle.
2016-05-04
2016-05-02
要点
只能通过
IS NULL
,IS NOT NULL
(运算符),ISNULL()
(函数)这3个来进行测试NULL
值与
NULL
进行任何运算(比较,算术等),结果都为NULL
,除非该运算符特别说明!
参考
2016-04-28
优点
相比全局变量
将构造函数私有,可以防止定义多个实例!
可以实现为uncopyable,禁止复制或赋值!
更加的OO,使用起来便利,无须手动创建和释放!
- 利用C++的确定性析构特点,可以确保程序退出时,执行析构函数,释放相应资源!
可以确保在使用该对象时,该对象已被初始化,而nonlocal-static却不能保证(参考 Effective C++ Item-4 P30)
因为C++标准没有定义,也无法定义不同模块中nonlocal-static对象的初始化顺序
程序启动更快,只有在首次使用的时候才会创建
2016-04-28
数据段
BSS段通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是可读写的,在程序执行之前BSS段会自动清0。
可执行程序包括BSS段、数据段、代码段(也称文本段)。
BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。
数据段包括初始化的数据和未初始化的数据(BSS)两部分[1] 。BSS段存放的是未初始化的全局变量和静态变量。
UNIX下可使用size命令查看可执行文件的段大小信息。如size a.out。
2016-04-28
1 | class X |
要点
与全局变量存储在同一区域(全局/静态存储区,又叫做数据段)
在函数内用static修饰的变量,也是在全局/静态存储,只是访问的作用域被编译器限定
static数据成员只是加上了类名字限定了的全局变量!
为什么需要在类实现文件中单独定义static类型数据成员?
- 因为类定义在头文件中,而头文件可以在不同的object中引用,
这样该定义不唯一,链接器在链接时,会报重定义错误!
参考
2016-04-26
步骤
fork
,退出父进程确保后面
setsid
可以执行成功setsid
创建新的会话(session),要求该进程不是进程组长(process group leader)。
当创建了新的会话,便脱离了原有的控制终端(tty)
再次
fork
,退出父进程可以防止潜在要求打开控制终端,因为控制终端必须要进程组长才可以打开
chdir
, 修改当前工作目录不影响
umount
umask
, 设置默认的文件屏蔽字关闭打开的文件描述符(0,1,2等,可通过
ls /proc/pid/fd
查看打开的文件描述符)若不关闭,虽然没有了控制终端,不会接受到相应控制信号,则仍能IO对应文件,如标准输出到启动时的终端,从终端读入!
- 需要注意,默认为行缓冲!
2016-04-25
use(samba)
查看帮助
net help use
建立连接
net use * /user:username \\computername\sharename password net use * /user:pm \\192.168.1.2\pm pm0422
映射连接
net use * /user:pm \\192.168.1.2\pm pm0422
删除连接
net use \\computername\sharename /delete
参考
2016-04-22
添加软件源
zypper ar -f <URL> <alias> zypper ar -f http://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/11.2/repo/oss/ rep
关闭防火墙
/sbin/rcSuSEfirewall2 stop
2016-04-22
- 程序中,SQL语句尽量用’`’括起来,避免关键字冲突