- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 表的实现
用数组来实现表时,我们利用了数组单元在物理位置上的邻接关系来表示表中元素之间的逻辑关系。由于这个原因,用数组来实现表有如下的优缺点。优点是: 无须为表示表中元素之间的逻辑关系增加额外的存储空间; 可以方便地随机访问表中任一位置的元素。 缺点是: 插入和删除运算不方便,除表尾的位置外,在表的其他位置上进行插入或删除操作都必须移动大量元素,其效率较低
2007-03-09 00:07:00
740
原创 网络安全工具开发函数库-libnet
---[[ C开发库简介 ]]------------------------------------- 在Unix系统平台上的网络安全工具开发中,目前最为流行的C API library有libnet、libpcap、libnids和libicmp等。它们分别从不同层次和角度提供了不同的功能函数。使网络开发人员能够忽略网络底层细节的实现,从而专注于程序本身具体功能的设计与开发。其中,* lib
2007-03-06 23:26:00
801
原创 回调函数、消息和事件例程
回调函数、消息和事件例程 回调函数、消息和事件例程 调用(calling)机制从汇编时代起已经大量使用:准备一段现成的代码,调用者可以随时跳转至此段代码的起始地址,执行完后再返回跳转时的后续地址。CPU为此准备了现成的调用指令,调用时可以压栈保护现场,调用结束后从堆栈中弹出现场地址,以便自动返回。借堆栈保护现场真是一项绝妙的发明,它使调用者和被调者可以互不相识,于是才有了后来的函数和构件,使
2007-03-04 23:13:00
721
转载 Linux静态/动态链接库的创建和使用
和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法:假设有下面几个文件:头文件String.h,声明相关函数原形,内容如下:Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下:Strlnen.c:函数StrNlen的实现,获取给定字符串的长度,如果输入字符串的长度大于指定的最大长度,则返回最大长度,否者返回字符串的实际长度,内容如下:生成静态库
2006-06-14 16:31:00
612
原创 C/C+语言struct深层探索
1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。 在网络协议、通信控制、嵌
2006-06-14 16:22:00
736
原创 一篇经典的TCP/IP基础知识文章
在 Microsoft Windows 计算机上配置 TCP/IP 协议时,TCP/IP 配置设置中需要 IP 地址和子网掩码,通常还需要一个默认网关。要正确配置 TCP/IP,有必要了解 TCP/IP 网络的寻址方式以及网络和子网的划分方式。本文旨在对 IP 网络和子网的概念进行一般性介绍。本文结尾包含一个术语表。 更多信息作为 Internet 的网络协议,TCP/IP 的成功在很大程度上归功
2006-06-14 15:50:00
1791
原创 C创建新线程的源码
#include #include //线程函数DWORD WINAPI ThreadProc(LPVOID lpParam){ int i = 0; while(i { printf("I am from a thread,count = %d/n",i++); } return 0;}int main(int argc, char* argv[]){ HANDLE hThread;
2006-06-13 20:52:00
1620
原创 C查找某个目录下的所有文件(包括子目录)(转)
//原作者不详,偶然发现。然后稍做了修改,测试了以下。整理了一下。#include "stdio.h"#include "windows.h"#include "winbase.h"void FindFileInDir(char* rootDir);main(){ FindFileInDir("C://");}void FindFileInDir(char* rootDir)//, c
2006-06-13 20:44:00
1646
原创 基于C的文件操作
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:typedef struct {int level; /* fill/empty level of buffer */unsigned flags; /* File status flags */char
2006-06-13 20:35:00
797
原创 #pragma预处理指令详解
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para
2006-06-13 20:25:00
598
原创 链表的源码
/* ========================== Program Description ========================== *//* 程序名称:createList.c
2006-06-13 20:23:00
1091
原创 交换网络中的嗅探和ARP欺骗
以太网内的嗅探(sniff)对于网络安全来说并不是什么好事,虽然对于网络管理员能够跟踪数据包并且发现网络问题,但是如果被破坏者利用的话,就对整个网络构成严重的安全威胁。至于嗅探的好处和坏处就不罗嗦了。ARP缓存表 假设这样一个网络: —————————— | HUB | ——————————
2006-06-13 17:05:00
691
原创 memset ,memcpy 和strcpy 的根本区别?
它们用处不同,但大部分情况下可以完成相同的要求。strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。例:
2006-06-13 17:03:00
704
转载 读心术(C)
近来发现一Flash游戏,名读心术.游戏算法奇妙.特以C写出.代码简单,未做注释.感谢指点.附:本人E文较差,文内提示纯属乱拼.勿怪.#define WIDTH 9#define HEIGHT 10#define HEART 9#define BYTE 27using namespace std; //C++标准命名空间 char UChar[] = {"ABCDEFGHIJKL
2006-06-13 16:55:00
1460
原创 文件分割与合并程序
#include "dos.h"#include "stdio.h"#include "conio.h"#includeFILE *fp,*fp1,*fp2,*fp3,*fp4,*fp5,*fp6;char ch3[50];void postfixname(int divnum){ struct ffblk ffblk1; int j,ch1[3],done; char fixna
2006-06-13 03:54:00
935
转载 C文件概述
C文件概述文件(file)是程序设计中的一个重要的概念。所谓"文件"一般指:存储在外部介质上的数据的集合。一批数据是以文件的形式存放在外部介质(如磁盘)上的。操作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部介质上的数据,必须先按文件名找到所指定的文件,然后再从该文件中读取数据。要向外部介质上存储数据也必须先建立一个文件(以文件名标识),才能向它输出数据。§10.2 文件类
2006-06-09 16:55:00
1247
转载 fgetc, EOF 及其它
在另一个贴子中,我与一些朋友对 getc 展开了一些讨论. 由于觉得楼主最终未能明白 我的意思,所以我把我个人的看法总结出来,写在这里.我不太擅长说明,但已经尽力了. 任何人转本贴, 请务必把本人的名字写在显眼的位置. 8) 约定编译器为 gcc2/x86: 所以 char, unsigned char 为 8 位, int 为 32 位 请参考 http://bbs.chinaunix.n
2006-06-09 11:44:00
900
转载 排列组合的算法
举个例子:问题是这样的:假如有4组数据,每组数据都是{1,2,3,4},组成一个矩阵,即:{{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},}从每组数据中取出一个,组合成一个新的数据,那我怎么样得到所有的新数据呢?---------------------------------------------------------------------------
2006-06-08 21:20:00
1357
1
转载 流类库与输入/输出
流类库与输入/输出11-1 什么叫做流?流的提取和插入是指什么?I/O流在C++中起着怎样的作用?解: 流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动,一般意义下的读操作在流数据抽象中被称为(从流中)提取,写操作被称为(向流中)插入。操作系统是将键盘、屏幕、打印机和通信端口作为扩充文件来处理的,I/O流类就是用来与这些扩充文件进行交互,实现数据的输入
2006-06-08 20:49:00
3557
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人