<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zjplus的专栏]]></title><description><![CDATA[放飞技术的梦想]]></description><link>https://blog.youkuaiyun.com/zjplus</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zjplus]]></copyright><item><title><![CDATA[APUE学习笔记：第八章 进程控制]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/3074991</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/3074991</guid><author>zjplus</author><pubDate>Tue, 14 Oct 2008 17:10:00 +0800</pubDate><description><![CDATA[1、进程标识符，ID为0的进程是调度进程，也称交换进程swapper，是内核的一部分，而ID为1的则为init进程，获取进程ID有如下一些函数#include pid_t getpid(void);pid_t getppid(void);uid_t getuid(void);uid_t geteuid(void);gid_t getgid(void);gid_t getegid(void);2]]></description><category></category></item><item><title><![CDATA[VS2005中宏定义错误]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/2570020</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/2570020</guid><author>zjplus</author><pubDate>Fri, 20 Jun 2008 17:25:00 +0800</pubDate><description><![CDATA[在现有代码中添加如下一个宏，竟然出错，	#define error_return(f) /	do { /  		if (!(f)) /		{ /			std::cout<<"error happened when calling "<<#f<<std::endl; /			return; /		} /	} while (0)编译通不过]]></description><category></category></item><item><title><![CDATA[包含windows.h出错的问题]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/2562455</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/2562455</guid><author>zjplus</author><pubDate>Wed, 18 Jun 2008 19:38:00 +0800</pubDate><description><![CDATA[在win32 console编程中，出现包含windows.h就会报错的情况，具体如下 ../vc/platformsdk/include/rpcndr.h(147) : error C2632: “char”后面的“int”非法 ../vc/platformsdk/include/rpcndr.h(147) : warning C4091: “typedef ”: 没有声明变量时忽略“u]]></description><category></category></item><item><title><![CDATA[C++异常效率的测试]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/2541143</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/2541143</guid><author>zjplus</author><pubDate>Thu, 12 Jun 2008 19:27:00 +0800</pubDate><description><![CDATA[    一直都不知道异常的效率损失有多大，在程序中都一直避免使用异常。虽然网上说一个好的C++实现，使异常造成的效率可以减小到5%，然而《C++程序设计语言》一书中指出，理论上一个好的C++实现，可以不会造成效率损失。异常的效率损失到底如何呢，为了搞懂这个东西，我写了如下三个测试程序： normal.cpp 不使用try语句 try_with_no_exception.cpp 使用try语]]></description><category></category></item><item><title><![CDATA[INI配置文件类]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/2527175</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/2527175</guid><author>zjplus</author><pubDate>Mon, 09 Jun 2008 14:48:00 +0800</pubDate><description><![CDATA[        工作中需要经常读取INI配置文件，自己写了一个简单的类来做这些重复工作，该类简单实用，在我的工作中发挥了较好效用，下面贴出代码，供有需要的人参考。CommonDefs.h文件//=============================================================================/***  @file    CommonD]]></description><category></category></item><item><title><![CDATA[关于宏展开的一些总结]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/2309773</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/2309773</guid><author>zjplus</author><pubDate>Sun, 20 Apr 2008 20:04:00 +0800</pubDate><description><![CDATA[在C++中，尽管使用宏是不推荐的，但是很多时候宏也会为我们提供一些方便，且在现有代码中宏也确实大量存在。有人认为宏是错误的根源，因为宏展开后，有可能会出现一些稀奇古怪的代码，那么，本文在这里总结一些查看宏展开后的代码的方法。 1、在visual studio 2005中，选择项目属性-〉配置属性-〉C/C++-〉预处理器，在“生成预处理文件”中选择生成预处理文件，“不带行号(/EP /]]></description><category></category></item><item><title><![CDATA[AIX下生成动态库的问题]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/2309730</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/2309730</guid><author>zjplus</author><pubDate>Sun, 20 Apr 2008 19:24:00 +0800</pubDate><description><![CDATA[AIX上编译一个库，Makefile部分内容如下，libwrapper.so: $(libwrapper_so_OBJECTS)        @echo ${COMPILE}        @echo $(libwrapper_so_OBJECTS)        ${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.s]]></description><category></category></item><item><title><![CDATA[fork产生僵死子进程的问题]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/2185219</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/2185219</guid><author>zjplus</author><pubDate>Sat, 15 Mar 2008 14:41:00 +0800</pubDate><description><![CDATA[之前写的一个程序，调用fork产生子进程，子进程进行实际工作，父进程则使用信号处理函数来接收子进程结束信号，然后调用waitpid，处理子进程的僵死进程。按理说这样做，应该不会出现僵死进程了，但是，经过大量实际数据测试后，还是会出现僵死进程。一直都找不到问题原因，最后使用ps命令得到父进程的pid，并用gdb调试器attach父进程，执行bt命令，发现堆栈情况如下(gdb) bt#]]></description><category></category></item><item><title><![CDATA[grep命令]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1967023</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1967023</guid><author>zjplus</author><pubDate>Tue, 25 Dec 2007 19:31:00 +0800</pubDate><description><![CDATA[1、  语法grep [options] PATTERN [FILE...]grep [options] [-e PATTERN | -f FILE] [FILE...] 2、  描述grep命令在输入文件中（如果没有输入文件，则从标准输入）寻找与模式PATTERN匹配的行，默认对匹配的行执行打印到标准输出的操作。另外，egrep命令与grep –E相同，fgrep与gre]]></description><category></category></item><item><title><![CDATA[ipcrm命令]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1965476</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1965476</guid><author>zjplus</author><pubDate>Mon, 24 Dec 2007 20:05:00 +0800</pubDate><description><![CDATA[使用权限：所有使用者 使用方式：       ipcrm [ -M key | -m id | -Q key | -q id | -S key | -s id ] ...说明：删除消息队列、共享内存、信号灯参数：-M   以shmkey删除共享内存-m   以shmid删除共享内存-Q   以msgkey删除消息队列-q    以msgid删除消息队列-S   ]]></description><category></category></item><item><title><![CDATA[ipcs命令]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1957888</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1957888</guid><author>zjplus</author><pubDate>Fri, 21 Dec 2007 20:00:00 +0800</pubDate><description><![CDATA[使用权限：所有使用者 使用方式：       ipcs [ -asmq ] [ -tclup ]       ipcs [ -smq ] -i id       ipcs –h说明：显示进程间通信信息参数：-m   显示共享内存-q    显示消息队列-s    显示信号灯-a    显示所有信息，默认为该选项范例：$ipcs            ]]></description><category></category></item><item><title><![CDATA[cat命令]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1954228</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1954228</guid><author>zjplus</author><pubDate>Wed, 19 Dec 2007 19:32:00 +0800</pubDate><description><![CDATA[使用权限：所有使用者  使用方式：cat [-AbeEnstTuv] [--help] [--version] fileName  说明：把档案串连接后传到基本输出（屏幕或加 > fileName 到另一个档案） 参数： -n 或 --number 由 1 开始对所有输出的行数编号 -b 或 --number-nonblank 和 -n 相似，只不过对于空白行不编号 -s 或 --squeeze-]]></description><category></category></item><item><title><![CDATA[多态初步]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1750731</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1750731</guid><author>zjplus</author><pubDate>Sun, 19 Aug 2007 21:04:00 +0800</pubDate><description><![CDATA[多态初步1.   什么是多态多态就是同一个处理手段可以用来处理多种不同的情况。同一操作作用于不同的对象，可以有不同的解释，产生不同的执行结果，这就是多态性。2.   多态作用在C++中，就是相同代码，实现不同功能，从而简化编程。在运行时，可以通过指向基类的指针，来调用实现派生类中的方法。（1）应用程序不必为每一个派生类编写功能调用，只需要对抽象基类进行处理即可。这一招叫]]></description><category></category></item><item><title><![CDATA[构造、拷贝构造函数基础]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1738398</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1738398</guid><author>zjplus</author><pubDate>Sat, 11 Aug 2007 20:10:00 +0800</pubDate><description><![CDATA[构造函数 构造函数可以重载，但是重载可能会出现一些问题，降低了代码的可读性。例一：// 类定义class C1{public:    C1(){}; // 默认构造函数     C1(int n){ // 构造函数           cout    };      C1(char *str){ // 构造函数           c]]></description><category></category></item><item><title><![CDATA[转：给自己学习C++的50个忠告]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1396706</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1396706</guid><author>zjplus</author><pubDate>Sun, 19 Nov 2006 21:26:00 +0800</pubDate><description><![CDATA[       网络上对学习C++的忠告，非常好，对我学习C++很有帮助。 这里再把它转出来，也算对自己的再次勉励。1.把C++当成一门新的语言学习（和C没啥关系！真的。）； 2.看《Thinking In C++》，不要看《C++变成死相》； 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我]]></description><category></category></item><item><title><![CDATA[网上售书系统规格说明书]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1353201</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1353201</guid><author>zjplus</author><pubDate>Fri, 27 Oct 2006 13:32:00 +0800</pubDate><description><![CDATA[ ]]></description><category></category></item><item><title><![CDATA[网上售书系统需求规格说明书]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1353195</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1353195</guid><author>zjplus</author><pubDate>Fri, 27 Oct 2006 13:19:00 +0800</pubDate><description><![CDATA[ ]]></description><category></category></item><item><title><![CDATA[VC中实现多行工具栏]]></title><link>https://blog.youkuaiyun.com/zjplus/article/details/1232484</link><guid>https://blog.youkuaiyun.com/zjplus/article/details/1232484</guid><author>zjplus</author><pubDate>Sun, 17 Sep 2006 10:41:00 +0800</pubDate><description><![CDATA[        VC中实现工具栏是件轻而易举的事，然而要实现多行工具栏却需要一定的编程，本文简要介绍实现一个简单的多行工具栏 的具体方法。        多行工具栏的实现方法是用CBRS_SIZE_FIXED样式创建工具栏，然后再用TBBS_WRAPPED设置一行末尾的按钮样式。注意，创建时一定要使用CBRS_SIZE_FIXED样式，不然是不会使工具栏按钮换行的。        先创建一]]></description><category></category></item></channel></rss>