C陷阱与缺陷 拾遗2007-03-13 19:50:27
C语言及其典型实现被设计为能被专家们容易地使用。这门语言简洁并附有表达力。但有一些限制可以保护那些浮躁的人。一个浮躁的人可以从这些条款中获得一些帮助。在本文中,我们将会看一看这些未可知的益处。这是由于它
C/C++程序员应聘常见面试题深入剖析2007-03-13 19:17:39
本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能给出完美的解
详细解析C语言中的sizeof2007-03-13 19:15:17
sizeof的概念sizeof是C语言的一种单目操作符,如C语言的其他操作符++ 、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作
Linux环境进程间通信(五):共享内存2007-02-15 21:20:48
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由
Linux环境进程间通信(四):信号灯2007-02-15 21:08:10
信号灯概述信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还
Linux环境进程间通信(三):消息队列2007-02-15 20:55:29
本系列文章中的前两部分,我们探讨管道及信号两种通信机制,本文将深入第三部分,介绍系统 V 消息队列及其相应 API。消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号
Linux环境进程间通信(二):信号(下)2007-02-15 20:47:24
在信号(上)中,讨论了linux信号种类、来源、如何安装一个信号以及对信号集的操作。本部分则首先讨论从信号的生命周期上认识信号,或者宏观上看似简单的信号机制(进程收到信号后,作相应的处理,看上去再简单不过了
Linux环境进程间通信(二):信号(上)2007-02-15 20:45:04
linux信号机制远远比想象的复杂,本文力争用最短的篇幅,对该机制做了深入细致的分析。信号应用实例将在信号(下)中给出。一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收
Linux环境进程间通信(一): 管道及有名管道2007-02-15 20:31:28
管道及有名管道 在本系列序中作者概述了 linux 进程间通信的几种主要手段。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管
深刻理解Linux进程间通信(IPC)2007-02-15 20:26:35
一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了Linux环境下的几种主要进程间通信手段,并针对每个通信手段关键技术环节给出详细实例。为达到阐明问
Playing Audio in Windows using waveOut Interface2006-12-30 17:41:16
This tutorial will teach you how to use the Windows waveOut multimedia functions. It also explains a little about how audio is stored in the digital form. I hope this tutorial is useful. Full source c
VC中基于 Windows 的精确定时2006-12-07 23:12:27
在工业生产控制系统中,有许多需要定时完成的操作,如定时显示当前时间,定时刷新屏幕上的进度条,上位 机定时向下位机发送命令和传送数据等。特别是在对控制性能要求较高的实时控制系统和数据采集系统中,就更需要精
VC中利用多线程技术实现线程之间的通信2006-12-05 21:24:32
当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普
解决VC6.0中编译程序时的警告:warning LNK40982006-11-24 20:02:41
warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library这是由于同一个程序中使用了不同版本的链接库。解决此问题可以在设置中忽略掉相应的库即可。方法是在菜单:Pr
[原创]《C陷阱与缺陷》笔记2006-09-11 15:22:11
第1章 语法“陷阱”符号之间的空白(包括空格,制表符,换行符)将被忽略,因此if (x > big) big = x;等价于if(x>big)big=x;1.1 =不同于==赋值运算相对比较运算出现得更频繁,因此字符数较少的符号=就被赋予了更常用