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