- 博客(11)
- 资源 (26)
- 收藏
- 关注
转载 auto_ptr
auto_ptr是当前C++标准库中提供的一种智能指针,或许相对于boost库提供的一系列眼花缭乱的智能指针, 或许相对于Loki中那个无所不包的智能指针,这个不怎么智能的智能指针难免会黯然失色。诚然,auto_ptr有这样那样的不如人意,以至于程序员必须像使用”裸“指针那样非常小心的使用它才能保证不出错,以至于它甚至无法适用于同是标准库中的那么多的容器和一些算法,但即使如此,我们仍然不能否认这个
2013-03-21 17:27:41 590
转载 C++ 局部静态初始化不是线程安全的!
在块作用域中的静态变量的规则 (与之相对的是全局作用域的静态变量) 是, 程序第一次执行到他的声明的时候进行初始化. 察看下面的竞争条件: int ComputeSomething() { static int cachedResult = ComputeSomethingSlowly(); return cachedResult; } 这段代码的意图是在该函数第一次被调用的时
2013-03-21 16:52:48 1414
原创 类成员函数可以访问相同类对象的私有对象
今天在学习c++ copying函数的时候,了解到这个问题:类成员函数可以访问相同类对象的私有对象; 下面这个例子是很好的copying函数,有很多细节。 实例如下: class Customer { public: Customer(const Customer& c): _name(c._name) { } Customer& ope
2013-03-19 17:32:39 1845 1
原创 多态基类应声明 virtual析构函数
C++中虚析构函数的作用,当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用,否则派生类对象的析构函数不会被调用。并不是要把所有类的析构函数都写成虚函数。因为当类里面有虚函数的时候,编译器会给类添加一个虚函数表,里面来存放虚函数指针,这样就会增加类的存储空间。所以,只有当一个类被用来作为基类的时候,才把析构函数写成虚函数。 代码: #include using name
2013-03-15 17:39:27 837
原创 编写自己的Makefile
之前学习了一些Makefile规则,自己编写了一个简单的Makefile,分为三个部分:HYCMakefile,Makefilebase.mk,Makefile Makefilebase.mk是一些通用规则,就像c++代码中的头文件,我们把一些通用的规则,放在一起; HYCMakefile,是一些需要使用Makefile时,才能确定的一些内容,比如用到哪些include目录,库文件目录,用到哪
2013-03-13 17:19:02 1234
原创 sigaction实例
#include #include #include #include #include #include #include #include #include #include #include static void signal_handle(int sign) { printf("Test:System signal(%d
2013-03-13 16:40:10 1323
原创 sigaction函数和signal函数
signal和sigaction的区别: signal都是指以前的older signal函数,现在大多系统都用sigaction重新实现了signal函数。 1. signal在调用handler之前先把信号的handler指针恢复;sigaction调用之后不会恢复handler指针,直到再次调用sigaction修改handler指针。这样,signal就会丢失信号,而且不能处
2013-03-13 16:36:51 4767
原创 exec实例详解
下面这个实例通过execle调用了ls命令; 通过execlp调用了echo命令; #include #include #include"ourhdr.h" // char*env_init[] = {"USER=unknown","PATH=/tmp",NULL} ; intmain() { pid_t pid ; if( (pi
2013-03-13 16:34:46 1386
原创 exec函数
用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序。 当进程调用一种exec函数时,该进程完全由新程序代换,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。 exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在
2013-03-13 16:32:23 835
原创 可变参数函数
可变参数参数在编程中其实是经常用得到的,查询一些资料,整理了一下,最后写出一个简单的 宏定义的可变参数LOG,这个实例大家肯定可以经常用到。 可变参数定义 我们学习C语言时最经常使用printf()函数,但我们很少了解其原型。其实printf()的参数就是可变参数,想想看,我们可以利用它打印出各种类型的数据。下面我们来看看它的原型: intprintf( const char* format
2013-03-12 09:46:15 1252
原创 自动化变量
%.o : %.c $(CC)-c $ $@表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配于目标中模式定义的集合。 $ $%仅当目标是函数库文件中,表示规则中的目标成员名。例如,如果一个目标是"foo.a(bar.o)",那么,"$%"就是"bar.o","$@"就是"foo.a"。如果目标不是函数库文件(Unix下是[.a],Windows下是[.lib
2013-03-02 20:54:43 579
autoconf 和 automake 生成 Makefile 文件
2013-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人