Linux后台服务器编程。
发布时间:2014-07-26 16:29:29
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即<类名>::<静态成员名>。.........【阅读全文】
发布时间:2014-07-26 09:30:58
函数名: strrchr 功 能: 在串中查找指定字符的最后一个出现 用 法: char *strrchr(char *str, char c);举例:char fullname="./lib/lib1.so"; char *ptr; ptr = strrchr(fullname,'/'); pri.........【阅读全文】
发布时间:2014-07-26 08:20:56
C++中值传递、指针传递、引用传递的总结 收藏 1. 值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。void swap(int a.........【阅读全文】
发布时间:2014-07-25 09:00:14
应邀答题,很好奇这样中规中矩的题目为啥要匿名。首先说说“适合学生参与”。参与开源项目的开发者,来自各行各业的都有,并没有哪些开源项目学生的比例明显高于其它项目的。至于 GSoC,其项目也不是单独为学生专门设计的,都只是从标准的开源项目里选出一些工作量大小适中的子项目专门让学生参与而已。如果硬要说学生和.........【阅读全文】
发布时间:2014-07-24 20:13:53
第一层次:普通管理员 1、特征:能理解分区的概念,知道安装linux系统和常见的数据库、桌面管理器、应用软件等,能做一些基本的配置(如网络、打印机、调制解调器等),参照手边资料依葫画瓢式的安装和配置常见服务(如NFS、HTTP、FTP、TELNET、 SSH、LDAP、NIS、邮件服务、SAMBA、打印服务等),能解决一些.........【阅读全文】
发布时间:2014-07-24 17:14:46
作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应用过, 但是回过头仔细想想,其实以前自己写过的这些代码,只能是在特定的项目或者特定的环境中使用, 对.........【阅读全文】
发布时间:2014-07-24 15:15:30
C++中真正的临时对象是看不见的,它们不出现在你的源代码中,临时对象的产生在如下几个时刻: 1. 用构造函数作为隐式类型转换函数时,会创建临时对象。例: class Integer &nb.........【阅读全文】
发布时间:2014-07-18 17:18:20
up vote8down votefavorite3I found this symbols in a function declaration several times, but i don't know what they mean, if it is something stupid I apologize for the question.lik.........【阅读全文】
发布时间:2014-07-17 17:25:11
1、环形缓冲区(下面生产者消费者的例子使用) 使用一段内存空间作为缓冲区,维护两个指针,一是读指针,指向缓冲空间的第一个可读位置;二是写指针,指向空间的第一个空位置。读取一个数据后,读指针+1,当指针位置超出缓冲区域则指向缓冲区域的头位置(置0);写入一个数据后,写指针+1,当指针位置超出缓冲.........【阅读全文】
发布时间:2014-07-16 23:06:05
现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法。 1.修改/etc/profile文件如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。 .........【阅读全文】
发布时间:2014-07-16 23:00:43
1 获得源码 从apue的官方网站http://www.apuebook.com/下载 源码。(点击here直接下载) 在windows下载后用U盘拷到linux系统下找个目录解压 tar -zxvf src.tar.gz 在当前目录下解压 通过pwd查看你解压的目录 这个目录要记住会在下一步中用到2 WKDIR 编辑源码解压生成的apue.2e文件 夹下的Mak.........【阅读全文】
发布时间:2014-07-16 16:33:55
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的.........【阅读全文】
发布时间:2014-07-16 16:14:25
目录 [hide]0. 为什么写这篇博客1. 如何统计进程CPU利用率1.0 概述1.1 /proc/stat 统计总CPU消耗1.2 进程消耗的CPU时间片1.3 "非阻塞"的计算进程CPU利用率1.4 ps命令显示的.........【阅读全文】
发布时间:2014-07-16 16:04:53
Here at the Microsoft Security Response Center, we investigate thousands of security reports every year. In some cases, we find that a report describes a bona fide security vulnerability resulting from an issue in one of our products; when this happens, we develop a corrective update as quickly as.........【阅读全文】
发布时间:2014-07-14 16:19:19
Linux进程间的通信可以简称为IPC(Interprocess Communication),前面说过的 Linux的同步工具也是属于IPC的一部分,这里我想说的是通常意义的进程间的实际数据通。1管道管道是最早的UNIX IPC,所有的UNIX系统都支持这个IPC通信机制。我们最常见到使用它的位置就是shell中使用的管道命令.........【阅读全文】
发布时间:2014-07-12 11:52:46
原文标题:Page Cache, the Affair Between Memory and Files原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。] 上次我们考察了内核如何为一个用户进程管理虚拟内存,但是没有涉及文件及I/O。这次我.........【阅读全文】
发布时间:2014-07-12 11:51:40
原文标题:How The Kernel Manages Your Memory原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。] 在仔细审视了进程的虚拟地址布局之后,让我们把目光转向内核以及其管理用户内.........【阅读全文】
tianyashuibin2014-12-08 11:22
Oscarzhao:c++11 中貌似可以
嗯,是的,在c++11中可以
下面是在gcc的编译结果:
test_struct.cc:8:11: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
int a = 1;
^
tianyashuibin2014-10-23 21:57
除了静态数据成员外,数据成员不能在类体内显式的初始化
举个最简单例子
struct a
{
int a=1;
int b=2;
};
这也不能通过啊!
原因很简单,因为struct a此时只是在说明有这么个类型,而并没有定义一个具体的变量和分配内存空间
tianyashuibin2014-10-23 21:39
1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员
2.进入构造函数后在构造函数中执行一般计算
1.类里面的任何成员变量在定义时是不能初始化的。
2.一般的数据成员可以在构造函数中初始化。
3.const数据成员必须在构造函数的初始化列表中初始化。
4.static要在类的定义外面初始化。
5.数组成员是不能在初始化列表里初始化的。
6.不能给数组指定明显的初始化。
这6条一起,说明了一个问题:C++里面是不能定义常量数组的!因为3和5的矛盾。
tianyashuibin2014-10-23 21:32
记住静态成员这样初始化:
C/C++ code
class A
{
public:
static const int a[3];
};
const int A::a[3] = {1,2,3};