C/C++
渔樵码农
编程 下棋 文学
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
rand() 函数
C++的编程中可以用RAND()来产生随机数以满足编程人员的需要。它产生的随即数界于0到MAX_VALUE之间。尽管我们能用它产生随即数,但有时还是不能满足实际需求。比方说,如果模拟掷硬币,那只要0和1就够了。这样,我们可以采用比例收放和移位的方法: RAND()%a+b。a是需要的数字个数。比如在上例中只要两个数字,那a就取2。b表示移位,如果上例中要用1和2表示硬币的正反面,则原创 2008-06-12 11:28:00 · 1700 阅读 · 0 评论 -
ftell()函数
函数名: ftell 功 能: 返回当前文件指针 用 法: long ftell(FILE *stream); 程序例: #include int main(void) { FILE *stream; stream = fopen("MYFILE.TXT", "w+"); fprintf(stream, "This is a test"); printf("The file转载 2009-10-13 20:22:00 · 1591 阅读 · 1 评论 -
static_cast、dynamic_cast、reinterpret_cast和const_cast
static_cast、dynamic_cast、reinterpret_cast、和const_cast(比如static_cast,相当于c里面的转换,dynamic_cast (父子之间转换),const_cast 去掉常量性.)关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用转载 2009-10-13 20:03:00 · 987 阅读 · 0 评论 -
const char*, char const*, char*const的区别
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 这个知识易混点之前是看过了,今天做Linux上写GTK程序时又出现个Warning,发散一下又想到这个问题,于是翻起来重嚼一下。事实上这个概念谁都有只是三种声明方式非常相似:Bjarne在他的The C++ Programming Language里面给出过一个助记转载 2009-10-21 10:56:00 · 618 阅读 · 0 评论 -
java中调用c(c++)写的dll文件的实现及步骤(转)
JNI使用技巧点滴本文为在 32 位 Windows 平台上实现 Java 本地方法提供了实用的 示例、步骤和准则。本文中的示例使用 Sun Microsystems 公司创建的 Java Development Kit (JDK) 版本 1.4.1。用 C 语言编写的本地代码是用 Microsoft Visual C++ 6.0编译器编译生成。简介近日,由于项目需要,要在WEB页面实现图像转换功转载 2010-01-22 17:15:00 · 1019 阅读 · 0 评论 -
文件监视开发技术小结
最近在用java写监视文件系统的东东,特对C++和Java下的不同实现方法做一小结。1.Java环境下很多人都说用文件轮询HashTable,然后如何如何比较,这种方法效率极为低下,还会造成无谓的磁盘读写。好了JDK 7中提供了java.nio.file大家可以通过 WatchService 来实现对文件的事件的监听。千万记得在JDK 7下哈,现在的JDK7的预览版发布到 jdk-7-ea原创 2010-03-10 11:29:00 · 995 阅读 · 0 评论 -
一个rootkit程序--隐藏文件和进程
This is SUSs rootkit. It can hide files and processes when their names include "_sus_".=================================================================Written by dklkt. 2007.9Notice that转载 2010-01-07 10:48:00 · 1765 阅读 · 0 评论 -
实现进程隐藏(完整源代码)
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class原创 2010-01-07 10:03:00 · 2980 阅读 · 0 评论 -
rootkit---进程隐藏
这是《subverting windows kernel》中APIhook的一个例子,实现的功能就是进程隐藏。 实现机制:系统通过调用ZwQuerySystemInformation函数实现系统信息的查询,比如Taskmgr.exe使用该函数列举系统中运行的进程。通过Hook该函数并进行修改,对查询结果进行操作,从而实现进程隐藏。具体代码+分析:代码结构:四部分。第一部分:转载 2010-01-07 10:44:00 · 1267 阅读 · 0 评论 -
多路复用与设置阻塞、非阻塞模式
阻塞和非阻塞模式使用fcntl()可以进行设置,linux下默认的是阻塞模式,windows下相反。下面讲述设置模式三步骤:1、获取模式标识int mode_flag; listen_socket;mode_flag = fcntl(listen_socket,F_GETFL,0);2、设置模式标识为目标模式。非阻塞模式为O_NONBLOCK,阻塞模式为~O_NONBLOCK。原创 2009-10-06 20:30:00 · 1447 阅读 · 0 评论 -
Linux环境进程间通信(四):信号灯
一、信号灯概述信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。信号灯有以下两种类型:二值信号灯:最简单的信号灯形式,信号灯的值只能取0或1,类似于互斥锁。 注:二值信号灯能够实现互斥锁的功能,但两者的关注内容转载 2009-10-04 16:22:00 · 738 阅读 · 0 评论 -
Linux系统调用 Msgget()
功能描述:获取与某个键关联的消息队列标识。消息队列被建立的情况有两种:1.如果键的值是IPC_PRIVATE。2.或者键的值不是IPC_PRIVATE,并且键所对应的消息队列不存在,同时标志中指定IPC_CREAT。 如果新的消息队列被建立,它关联的msqid_ds数据结构初始化如下:msg_perm.cuid 和 msg_perm.uid设为调转载 2009-10-04 10:29:00 · 1853 阅读 · 1 评论 -
浅拷贝、深拷贝、值拷贝和位拷贝
首先: 位拷贝就是浅拷贝,值拷贝就是深拷贝。编译器会在必要的时候,自己产生默认的拷贝构造函数和赋值函数,采用的位拷贝。自己可以重新定义 拷贝构造函数,要注意采用值拷贝。 Q:什么是浅拷贝(shallow copy)和深拷贝(deep copy)? A: 浅拷贝就是成员数据之间的一一赋值,但是可能会有这样的情况:对象还包含资源,这里的资源可以是堆资源,或者一个文件。当值拷贝的时候,转载 2009-07-16 11:15:00 · 1479 阅读 · 1 评论 -
C++中内存的五种分配方式
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作转载 2009-07-16 14:50:00 · 769 阅读 · 0 评论 -
筛选法求素数
题目:求100以内的所有素数。求素数的算法常考,筛选法求素数不常见。定义长度为101的int数组a[101],初始化为1。依次测试1到100的所有数字是否为素数。若i为合数,则a[i]=0。筛选完毕后,所有非0元素a[i]所对应的数字i为素数。代码: #include using namespace std; int main()原创 2009-07-19 10:02:00 · 808 阅读 · 0 评论 -
虚函数与纯虚函数
虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public: virtual void Eat(){……}; void M转载 2009-09-17 16:10:00 · 754 阅读 · 0 评论 -
Linux环境进程间通信(二):信号(A)
linux信号机制远远比想象的复杂,本文力争用最短的篇幅,对该机制做了深入细致的分析。信号应用实例将在信号(B)中给出。一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通转载 2009-10-04 16:10:00 · 656 阅读 · 0 评论 -
Linux环境进程间通信(二):信号(B)
在信号(A)中,讨论了linux信号种类、来源、如何安装一个信号以及对信号集的操作。本部分则首先讨论从信号的生命周期上认识信号,或者宏观上看似简单的信号机制(进程收到信号后,作相应的处理,看上去再简单不过了),在微观上究竟是如何实现的,也是在更深层次上理解信号。接下来还讨论了信号编程的一些注意事项,最后给出了信号编程的一些实例。一、信号生命周期从信号发送到信号处理函数的转载 2009-10-04 16:16:00 · 663 阅读 · 0 评论 -
Linux环境进程间通信(五): 共享内存
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管转载 2009-10-04 16:24:00 · 763 阅读 · 0 评论 -
Linux环境进程间通信(三):消息队列
本系列文章中的前两部分,我们探讨管道及信号两种通信机制,本文将深入第三部分,介绍系统 V 消息队列及其相应 API。消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像"即时"的通信转载 2009-10-04 16:19:00 · 623 阅读 · 0 评论 -
C++库二进制兼容Binary Compatible教程
本文是从KDE的一个扫盲文翻译而来。说翻译其实也不是翻译,照着意思写而已,与原文并不严格对照。我翻译了俩小时,大家仔细看看啊~原文: <span class="t_tag" onclick="function onclick(){function onclick(){tagshow(event)}}">http://techbase.kde.org/index.php?ti转载 2010-04-18 15:23:00 · 5701 阅读 · 1 评论
分享