- 博客(101)
- 资源 (9)
- 收藏
- 关注
转载 孤儿进程、僵尸进程
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。 僵尸进程将会导致资源浪费,而孤儿则不会。
2009-04-24 16:05:00
650
原创 高质量编程
1.类型转换:由于派生类和基类之间的关系,C++保证了派生类对象必须保证其基类子对象的完整性.2.强制转换: 例子:double d3=1.25e+20; double d4=10.35; int i2=(int)d3; int i3=(int)d4; 上述代码的问题,i2会溢出,doubl
2009-02-17 21:41:00
653
原创 线程和进程的关系
在多进程情况下,每个进程都有自己独立的地址空间,而在多线程情况下,同一个进程内的线程共享进程的地址空间。线程的优点是:节约资源、节约时间。子进程是通过拷贝父进程的地址空间来实现的,而线程与进程内的线程共享程序代码。
2009-02-05 14:30:00
535
原创 进程控制
1.获取进程标识 #include #include pid_t getpid(void) 返回调用进程的进程ID pid_t getppid(void) 返回进程的父进程ID uid_t getuid(void) 返回进程的实际用户ID uid_t geteuid(void) 返回进程的有效用户ID gid_t getgid(void) 返回进程的实际组
2009-02-04 14:31:00
524
转载 堆栈的区别
堆栈是系统使用是临时存储区域。它是后进先出的数据结构。C++主要将堆栈用于函数调用。当函数调用时,各种数据被推入堆栈顶部;函数终止后的返回地址、传递给函数的参数、函数返回的结果以及函数中声明的局部变量等等。因此当函数A调用函数B调用函数C,堆栈是增长了,但调用完成后,堆栈又缩小了。堆是一种长期的存储区域。程序用C++的new操作符分配堆。对new的调用 分配所需的内存并返回指向内存的指针。与堆栈不
2009-02-04 13:14:00
640
转载 LINUX 下异常信号收藏
我们介绍一些标准信号的名称以及它们代表的事件。每一个信号名称是一个代表正整数的宏,但是你不要试图去推测宏代表的具体数值,而是直接使用名称。这是因为这个数值会随不同的系统或同样系统的不同版本而不同,但是名称还算是标准化和统一的。 这些名称定义在signal.h中。 int NSIG是一个定义的宏,它描述了定义的信号的数量。由于信号的数值是从0开始连续分配的,所以,NSIG比系统中所定义的最大
2009-01-14 17:09:00
784
转载 僵尸进程
在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill-9也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为"孤儿进程",过继给1号进程i
2009-01-14 17:05:00
556
转载 C++中的4种类型转换方式
C++中的4种类型转换方式static_cast 静态的_cast dynamic_cast 动态的_cast reinterpret_cast 重新解释的 _cast const_cast 常量的_cast C++ 里最好杜绝使用 C 方式的强制转换, 换用以上 4 个. 我们通常用的是 static_cast 在一类东西都可以转, 但是不是一类的就不能转. 即, 语义上说不通的, 两个完全不同
2009-01-13 22:25:00
993
转载 malloc/free和new/delete
有了malloc/free 为什么还要new/delete ?malloc 与free 是C++/C 语言的标准库函数,new/delete 是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象在消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符
2009-01-13 22:11:00
529
原创 LINUX进程
1. LINUX 进程有三部分组成,代码段:存放程序的可执行代码;数据段:存放程序的全局变量,常量,静态变量。堆栈段:存放动态分配的内存变量。2.进程的状态可分为:1.运行状态:进程正在运行或者在运行队列中等待运行。 2.可中断状态:进程正在等待某个事件完成。等待过程中可以被信号或定时器唤醒。 3.不可中断
2009-01-13 16:25:00
570
转载 软件测试
软件测试概念 使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。 Gren
2009-01-09 17:23:00
885
转载 黑盒测试、白盒测试
什么是黑盒测试和白盒测试? 任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序
2009-01-09 17:20:00
832
转载 GCC指令
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x language filename 设定
2009-01-07 17:19:00
2251
转载 打造Windows环境下的GCC+VIM的程序编写编译新模式
用vim编写源代码,用gcc编译连结程序几乎已成为LINUX下程序设计的标准开发模式了,(当然emacs也是非常出色和流行的),本文教你如何在Windows下做到同样的事情。 gcc和vim都有支持不同平台的版本,win32也当然不例外。此外,配合不同的库像WINAPI、GTK+等可开发出GUI程序。 安装GCC gcc的官方主页(http://gcc.gnu.org)上好像有for win
2009-01-07 16:43:00
2550
原创 VIM 环境下的编程实例
一、在终端直接用vim编写C程序 在某路径下打开一个终端,或打开终端后进入你想存放源文件的路径,然后 [root@localhost ~]# vim hello.c 接下来就可以输入源程序了,:set nu 可以设置行数i 进入编辑模式这里我们用一个最简单的程序做例子。 #include int main() { printf("hello world!/n"
2008-12-31 20:58:00
1240
原创 UBUNTU下播放RMVB文件的方法
下载mplayer和w32codecs,w32codecs的下载地址在下面,即可http://www.debian-multimedia.org/pool/main/w/w32codecs/
2008-12-31 16:23:00
808
原创 ubuntu利用配置编辑器管理桌面图标
配置编辑器是一个很好用的Gnome桌面管理工具,但是在Ubuntu中默认菜单中是不显示它的。启动配置编辑器有两种方式。一个简单的方法是用快捷键打开运行应用程序的小窗口,请同时按下这两个按键:+ 你将会看到这个窗口:输入 gconf-editor 后点击 运行。找到 apps -> nautilus -> desktop然后如果想在桌面显示下面的图标请分别勾选这几个键值:computer_icon_
2008-12-31 10:58:00
1623
原创 UBUNTU中显卡的问题
机器显卡是VIA/S3G UNICHROME PROIGP 使用开源的驱动——openchrome可以实现驱动,具体做法,在新立得中搜索该软件即可。
2008-12-31 10:27:00
662
转载 unix常用指令
在shell脚本中可以使用任意unix命令,不过实际上最为常用的一般都是那些文件和文字操作相关的命令。下面介绍一些常用命令的语法和功能: echo "some text" 在屏幕上输出信息ls 文件列表wc –l file或 wc -w file 或wc -c file 分别计算文件的行数(line)、单词数(word)和字符数(character),file为
2008-12-30 18:19:00
1132
原创 chomd指令用法
chmod用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。语法:chmod [who] [+ | - | =] [mode] 文件名命令中各选项的含义为:操作对象who可是下述字母中的任一个或者它们的组合: u 表示“用户(user)”,即文件或目录的所有者。
2008-12-30 18:09:00
13069
2
原创 apt-get 含义
apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。 apt-get命令一般需要root权限执行,所以一般跟着sudo命令 例 sudo apt-get xxxx
2008-12-30 17:17:00
1074
原创 关联、聚合、组合
关联、聚合(Aggregation)以及组合(Composition)的区别?涉及到UML中的一些概念:关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,如下图所示,用空的菱形表示聚合关系: 从实现的角度讲,聚合可以表示为:class
2008-12-29 20:16:00
755
转载 extern
1 基本解释extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。2 问题:extern 变量在一个源文件里定义了一个数组:char a[6];在另外一个文件里用下列语句进行了声明:extern char *a;请问,这样可以吗?答案与分析:1)、
2008-12-29 11:38:00
548
原创 ASCII编码表
ASCIIarw("[c0", ark4); 是英文American Standard Code for Information Interchange的缩写。ASCII码是目前计算机最通用的编码标准。因为计算机只能接受数字信息,ASCII码将字符作为数字来表示,以便计算机能够接受和处理。比如大写字母M的ASCII码是77。ASCII码中,第0~32号及第127号是控制字符,常用的
2008-12-27 21:39:00
636
转载 二、三、四层交换机的原理
二层三层四层交换机区别 二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC 地 址信息,根据MAC 地址进行转发,并将这些MAC 地址与对应的端口记录在自己内部的一个地 址表中。具体的工作流程如下: (1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC 地址,这样它就知道 源MAC 地址的机器是连在哪个端口上的; (2) 再去读取包头中的目的MAC 地址
2008-12-25 15:29:00
1397
原创 DNS解析过程
你打入一个网址www.microsoft.com,按回车后。 系统首先查询本地DNS客户端缓存中是否有这个域名,如果你刚才已经访问过这个网站,那么缓存中就会有对应的IP,系统就可以直接根据这个IP来连接网站。 如果本地缓存中无法找到对应的IP,系统将向DNS服务器(0.14)提交查询请求。0.14在收到请求后,先查询服务器的本地缓存中是否有对应的项,如果有,则返回。如果没有,0.14将首先向 ".
2008-12-25 14:32:00
2043
1
原创 图文例解C++类的多重继承与虚拟继承
在过去的学习中,我们始终接触的单个类的继承,但是在现实生活中,一些新事物往往会拥有两个或者两个以上事物的属性,为了解决这个问题,C++引入了多重继承的概念,C++允许为一个派生类指定多个基类,这样的继承结构被称做多重继承。 举个例子,交通工具类可以派生出汽车和船连个子类,但拥有汽车和船共同特性水陆两用汽车就必须继承来自汽车类与船类的共同属性。 由此我们不难想出如下的图例
2008-12-12 10:00:00
566
转载 基本题
求下面函数的返回值(微软)int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); //每进行一次与运算,就减少一个1 } return countx; } 假定x = 9999。 答案:8
2008-12-09 17:30:00
526
原创 string 实现
已知类String 的原型为:class String{ public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operate =(const String &other); //
2008-12-08 13:59:00
441
原创 strcpy实现
编写strcpy 函数已知strcpy 函数的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest 是目的字符串,strSrc 是源字符串。(1)不调用C++/C 的字符串库函数,请编写函数 strcpychar *strcpy(char *strDest, const char *strSrc);{ assert((str
2008-12-08 11:28:00
649
原创 高质量编程内存管理
有关内存的思考题void GetMemory(char *p){ p = (char *)malloc(100);}void Test(void){ char *str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str);}请问运行Test 函数会有什么样的结果?答:程序崩溃。因为GetMemo
2008-12-06 20:45:00
604
原创 CSocket、winsock
CSocket是MFC类,就是在原始SOCKET API上封装的一个类了。 winsock是windows操作系统上的berkerly socket api,socket这个东西,其实是一个程序集,确切的说,是一个api函数集,这样的函数集在各个操作系统上都有的,在windows系统上,微软根据berkerly socket api编写了用于windows的api,这就
2008-12-05 18:49:00
606
转载 MFC中用户自定义类响应自定义消息
首先能够响应消息的类必须都从CCmdTarget类中派生,因为只有以这个类中提供了消息的框架和处理机制,而CWnd类也派生与此类。CWinApp类、CDocument类、CDocTemplate类等都是CCmdTarget的派生类,即子类;而CFrameWnd类、CView类、CDialog类等都是从CWnd中派生的,其实也是CCmdTarget的子孙,所以都能够响应消息,但是响应消息的种类不太相
2008-12-04 16:21:00
3069
2
原创 CONST 指针
1.指针的理解:const char*, char const*, char*const的区别问题几乎是C++面试中每次 都会有的题目。 事实上这个概念谁都有只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 constchar * const cp; ( * 读成 pointe
2008-12-04 11:31:00
692
原创 MFC自定义消息
1、定义消息变量2、添加消息映射3、添加消息处理函数4、实现消息处理函数1、在stdafx.h中加入一行代码#define WM_MY_MESSAGE (WM_USER+100) //定义自已的消息2、在xxxDlg.cpp中加入ON_MESSAGE(WM_MY_MESSAGE,OnMyMessage) //用于将消息与消息处理函数联系起来(注意:此行代码应加到BEGIN_MESSAGE_M
2008-12-04 11:11:00
494
转载 CLIST
CList类的两个参数什么意思啊?第一个参数表示链表中存储的数据类型,后面一个表示链表类中函数参数的传递方式,通常为存储数据类型的引用。CList MyList_x;CListMyList_y;//两种方式实现的功能一样,不过后面一个更加高效。CList list;声明方式就是错误,CList list1;CList list2;CList list3;都是可以接受的声明方式。
2008-12-03 20:09:00
583
3G技术讲解(完整分析)
2010-04-14
NS2学习文件打包(很全面)
2009-12-03
OWL本体语言指南和使用
2009-12-03
WSDL学习文档(学习web服务必用)
2009-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人