02 2018 档案
摘要:客户端代码 1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include <winsock.h> 5 #pragma comment(lib,"ws2_32.lib") 6 7 //定义端口
阅读全文
摘要:协议之间的关系 socket在哪 socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符
阅读全文
摘要:通过令牌提升权限 1 BOOL opendebug() 2 { 3 //令牌 4 HANDLE htoken; 5 //是否提升权限成功 6 BOOL fok = FALSE; 7 //打开进程令牌,提升调试权限, 8 if (OpenProcessToken(GetCurrentProcess()
阅读全文
摘要:在dll中声明 1 _declspec(dllexport) int a = 10; 1 _declspec(dllexport)void go() 2 { 3 4 MessageBoxA(0, "go", "go", 0); 5 6 } 调用dll 1 HINSTANCE hlib = LoadL
阅读全文
摘要:包含头文件 1 //进程快照 2 #include<TlHelp32.h> 进程名 1 //进程名 2 #define exename "PlantsVsZombies.exe" 创建进程快照 1 HANDLE hpro=NULL; 2 3 //存储进程快照信息 4 PROCESSENTRY32 p
阅读全文
摘要:运行截图: 客户端 创建通信套接字 创建tcp通信 1 //创建tcp通信 2 socket_send = socket(AF_INET, SOCK_STREAM, 0); 创建服务器端结构体保存ip地址以及端口号,用于连接服务器 1 //创建服务器端结构体保存ip地址以及端口号 2 SOCKADD
阅读全文
摘要:运行截图 客户端 创建客户端套接字,用于创建UDP通信 1 SOCKET socket_client; 创建UDP通信 1 socket_client = socket(AF_INET, SOCK_DGRAM, 0); 创建客户端结构体保存ip地址以及端口号 1 SOCKADDR_IN sever;
阅读全文
摘要:dll文件(自定义函数) 1 _declspec(dllexport) void autoadd() 2 { 3 int *p = (int*)0xdc0c4d0; 4 *p = 5048; 5 } dll文件DLLMain函数 1 BOOL APIENTRY DllMain( HMODULE hM
阅读全文
摘要:taskkill / f / im 自删除.exedel 自删除.exedel 1.bat
阅读全文
摘要:包含头文件 1 #include<urlmon.h> 连接库 1 #pragma comment(lib,"Urlmon.lib")//链接系统库 下载 1 URLDownloadToFileA(NULL, "http://127.0.0.1/Q.exe", "C:\\sys.exe",0, NUL
阅读全文
摘要:#pragma 输出信息#pragma message 1 #include<stdio.h> 2 3 #pragma message("这里是测试1") 4 5 6 #define X86 7 8 #ifdef X86 9 #pragma message("这里是测试2") 10 #endif 1
阅读全文
摘要:写入 按照字符串读取 1 GetPrivateProfileStringA("hello money", infx[i].name, "NULL", money, 40, "1.ini"); 函数原型: 1 GetPrivateProfileStringA( 2 _In_opt_ LPCSTR lp
阅读全文
摘要:define把参数变成字符串 1 #define f(x) printf("%s",#x); define连接两个字符串 1 #define a(x) a##x define把参数变成字符 1 #define N(x) #@x 取消#define的作用域 1 #undef MN //取消define
阅读全文
摘要:初始化,数据的行数,hash链表结构体,存储头结点 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 char path[256] = "csdn.txt"; 5 //数据的行数 6 #def
阅读全文
摘要:常用字符串哈希函数有 BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash等等。对于以上几种哈希函数,我对其进行了一个小小的评测。
阅读全文
摘要:密码相似度排序后的文件地址和按密码出现次数排序后的文件地址 1 //按密码相似度排序后的文件地址 2 char pathsortbypass[512] = "QQpasswordsort.txt"; 3 //按密码出现次数排序的文件地址 4 char pathsortbyci[512] = "QQp
阅读全文
摘要:存储qq的文件地址以及按照密码相似度排序的文件地址 1 //存储qq的文件的地址 2 char path[512] = "QQ.txt"; 3 //按照密码相似度排序的文件地址 4 char pathsortbypass[512] = "QQpasswordsort.txt"; 标识qq一共有多少行
阅读全文
摘要:满缓冲,满了再写行缓冲,一行就写无缓冲默认的情况,操作系统帮你管理缓冲区自己管,#define _IOFBF 0x0000 full 缓冲区满了再干活#define _IOLBF 0x0040 line 行缓冲#define _IONBF 0x0004 No 无缓冲 用法示例 1 char str[
阅读全文
摘要:创建数据段 与数据段连接,实现数据通信,分享 1 //实现数据通信,分享 2 #pragma comment(linker,"/SECTION:cgwdata,RWS") 测试,用数据段使程序只能打开一次 1 if (my_data_seg > 0) 2 { 3 printf("程序只能启动一个")
阅读全文
摘要:总体思路就是客户端写入要查询的数据到管道中,服务器端从管道读取,然后写入随机文件,再把文件名写入管道,然后客户端再读取文件 服务器端 设置缓冲区大写,设置管道名字,以及标识有多少个线程等 1 //设置缓存区大小 2 #define SIZE 4096 3 //最多有多少线程 4 #define MA
阅读全文
摘要:创建全局的二级指针 1 char ** g_pp;//全局的二级指针 获取数据有多少行 1 //获取行数 2 int getimax() 3 { 4 int hang = -1; 5 FILE *pf = fopen(path, "r");//读文件打开路径 6 if (pf == NULL) 7
阅读全文
摘要:服务器创建共享内存 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<Windows.h> 4 5 #define SIZE 4096 6 //指针标识首地址 7 LPVOID lpdata = NULL; 8 9 10 void main()
阅读全文
摘要:运行截图: 把cgi编码转为char*类型 1 //把cgi编码转为char*类型 2 char* change(char *str) 3 { 4 //分配内存 5 char *tempstr = malloc(strlen(str) + 1); 6 7 //x是tempstr的下标,y是str的下
阅读全文
摘要:压力测试截图: 云端 定义管道缓存区大小,最多连接数量(线程个数),当前线程个数,管道名字 1 //缓冲区大小 2 #define SIZE 4096 3 //最多连接数量 4 #define MAX_CONNECT 128 5 //一开始有10个线程存在 6 int startthreadnum
阅读全文
摘要:服务器端 创建邮槽 1 //名称,数量 等待时间 安全属性 2 HANDLE hmailslot = CreateMailslotA(MAILSLOT, 0, MAILSLOT_WAIT_FOREVER, NULL); 获取邮槽信息 1 DWORD dxNextsize = 0;//标识最大的数据大
阅读全文
摘要:CGI编码 1 "%D6%DC%C8%F0%B8%A3"; 转换到字符串中: 1 //CGI编码转到char类型的tmpstr中中 2 char* change(char *str) 3 { 4 //分配内存 5 char *tempstr = malloc(strlen(str) + 1); 6
阅读全文
摘要:IO 创建文件并写文件 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include<io.h> 5 #include<fcntl.h>//文件打开 6 #include<sys/sta
阅读全文
摘要:"%[0-9A-Za-z] 读取一个集合,遇到不是数组或者大小写字母跳出 %*[^0-9A-Za-z]读取所有的非数字字母的字符,忽略 示例: 1 char strall [300]= "123sadsadasdas# 45613213213#yincheng01@163.com\n"; 2 cha
阅读全文
摘要:fseek 1 //文件路径 2 char path[150] = "1.txt"; 3 4 5 //FILE *pf = fopen(path, "a+");//尾部添加,文件指针在尾部 6 //FILE *pf = fopen(path, "w+");//文件指针在头部,清空内容 7 FILE
阅读全文
摘要:list.h 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <string.h> 5 6 //创建密码结点 7 typedef struct passinfo 8 { 9
阅读全文
摘要:数据挖掘 1 sscanf(str, "%d %s %s %d %d %s %s %s", &ph[i].id, ph[i].name, ph[i].sex, &ph[i].age, &ph[i].tall, ph[i].study, ph[i].mary, ph[i].where); 完整代码
阅读全文
摘要:ferror检测文件异常 perror提示文件错误信息 clearerr清除异常,让文件指针回到开头 完整代码
阅读全文
摘要:fprintf 1 //从读文件中提取字符串到info1.user和info1.password中 2 fscanf(pfr, "%s%s", info1.user, info1.password); fscanf 1 //格式化写入到文件中 2 fprintf(pfw, "%d %s %s\n",
阅读全文
摘要:1 //两个步骤,第一步读取文件,并且初始化索引结构体,把初始化的索引结构体写入到文件,第二步,读取这个文件到索引结构体 2 //并对这个结构体进行快速排序,得到顺序的索引,再写入文件 3 #define _CRT_SECURE_NO_WARNINGS 4 #include 5 #include 6 7 char path[256] = "QQ.txt"; 8 ...
阅读全文
摘要:问题引出: //有限的额内存情况怎么干活//索引载入内存,多线程//索引映射为内存 一.载入内存,按行读取进行多线程 定义路径以及其他信息 1 char path[256] = "kaifangX.txt"; 2 char indexpath[256] = "indexkf.txt"; 3 #def
阅读全文
摘要:1 #include 2 #include 3 #include 4 5 char path[256] = "kaifang.txt"; 6 7 void main() 8 { 9 //路径,读写, 10 HANDLE hfile = CreateFileA(path, GENERIC_READ |...
阅读全文
摘要:运行结果: 内存使用情况: 写入文件排序好的数据: 创建文件地址以及创建十一级指针 1 char *path = "QQ.txt"; 2 char *sortpath = "QQchiguowei2018.txt"; 3 //创建十一级指针 4 char *********** allP = NUL
阅读全文
摘要:一.文件载入内存进行多线程检索 获取并定义行数以及定义索引和文本的路径 1 char path[256] = "kaifangX.txt"; 2 char indexpath[256] = "indexkaifangX.txt"; 3 #define N 20151574 索引的结构体 1 //索引
阅读全文
摘要:获取文件有多少行 1 //获取文件有多少行 2 int getN(char *path) 3 { 4 FILE *pf = fopen(path, "r"); 5 if (pf==NULL) 6 { 7 return -1; 8 } 9 else 10 { 11 int i = 0; 12 whil
阅读全文
摘要:1 #define _CRT_SECURE_NO_WARNINGS 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 //多线程多文件,实现线程的调度 9 //释放内存 10 //内存不够的情况,排队完成任务 11 12 //创建多线程结构体 13 stru...
阅读全文
摘要:1 #define _CRT_SECURE_NO_WARNINGS 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 char *path = "dangdangwang.txt"; 10 11 #define N 13180820 12 13 //...
阅读全文
摘要:index.h 1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 #define N 10000000 5 6 struct index 7 { 8 int *pindex; 9 int leng
阅读全文
摘要:创建索引 1 //创建索引 2 struct index 3 { 4 //保存每行偏移的位置 5 int *pindex; 6 //文件的总长度 7 int length; 8 }allindex;//索引 初始化索引数组并把索引写入到文件 1 //初始化索引数组,并把索引写入到文件 2 void
阅读全文
摘要:创建全局变量 二级指针 指向多个char * 1 //针数组,指向所有的行 2 char **g_pp; 创建一个全局变量,标识一共有多少行,行数要提前获取 1 //文件中含有的行数 2 #define N 28 1 //获取文件的行数 2 int getN() 3 { 4 //打开文件 5 FIL
阅读全文
摘要:创建结构体存储csdn数据 1 struct csdn 2 { 3 char name[22]; 4 char password[43]; 5 char email[52]; 6 7 }; 对于分配的大小要先获取最大的长度,定义如下 1 //姓名最大长度 2 int namemax = -1; 3
阅读全文
摘要:fwrite 1 //初始化数组 2 int a[100]; 3 for (int i = 0; i < 100;i++) 4 { 5 printf("\n%d", a[i] = i); 6 } 7 8 //以写的方式打开文件 9 FILE *pf = fopen("C:\\1.bin", "wb"
阅读全文
摘要:文本文件读取是基于内容的读取而二进制文件读取是基于位置的读取,所以文本文件读取要加一个eof判断.而二进制文件读取则不用 文本文件加密 1 //文本加密 2 void wenben_jiami(char *path, char *desPath,char *mi) 3 { 4 FILE *pfr =
阅读全文
摘要:用feof读取总是会多读取一位. “C”语言的“feof()”函数和数据库中“eof()”函数的运作是完全不同的。数据库中“eof()”函数读取当前指针的位置,“C”语言的“feof()”函数返回的是最后一次“读操作的内容”。多年来把“位置和内容”相混,从而造成了对这一概念的似是而非。 那么,位置和
阅读全文
摘要:设置线程信息结构体 1 struct threadInfo 2 { 3 int *pstart; 4 int length; 5 int key; 6 int id; 7 }; 设置数组 1 int a[100]; 2 time_t ts; 3 srand((unsigned int)time(&t
阅读全文
摘要:以id创建时钟定时器 1 HANDLE time1 = CreateWaitableTimerA(NULL, TRUE, "mytimer");//创建时钟 创建时间 1 LARGE_INTEGER mytime; 2 mytime.QuadPart = -10000000; //等待一秒 设置定时
阅读全文
摘要:根据id创建Semaphore,并初始化有一个信号量可用 name类型是char *...; 1 HANDLE hsem = CreateSemaphoreA(NULL, 1, 1, name); 关闭句柄 1 CloseHandle(hsem); 根据id打开semaphore 1 HANDLE
阅读全文
摘要:创建互斥量mutex 1 HANDLE mutex = CreateMutexA(NULL, TRUE, name); 根据id打开mutex 1 HANDLE mutex = OpenMutexA(MUTEX_ALL_ACCESS,TRUE,name); 监听 1 DWORD res = Wait
阅读全文
摘要:以id创建事件 1 char name[100] = "myevent"; 2 HANDLE event = CreateEventA(NULL, FALSE, FALSE, name); 设置事件 1 SetEvent(event); 关闭事件 1 CloseHandle(event); 另一个进
阅读全文
摘要:创建互斥锁 1 SRWLOCK g_lock; 注意一个线程仅能锁定资源一次,不能多次锁定资源 读取期间锁定数据,数据无法被外部线程修改 1 AcquireSRWLockShared(&g_lock); 释放互斥锁 1 AcquireSRWLockShared(&g_lock); 注意一个线程仅能锁
阅读全文
摘要:创建信号量 1 //创建信号对象并开辟一个信号,最大计数是5,并初始化有五个可以用 2 HANDLE hSEM = CreateSemaphoreW(NULL, 5, MAX, id); 关闭信号量 1 CloseHandle(hSEM); 根据Id打开一个信号量 1 //根据一个id打开一个信号
阅读全文
摘要:创建定时器 1 HANDLE timer = CreateWaitableTimer(NULL, TRUE, NULL); 设置定时器时间 1 //设置时间 2 LARGE_INTEGER time; 3 time.QuadPart = -20000000;//以微秒为单位 等待 1 if (Wai
阅读全文
摘要:变量自增 1 InterlockedIncrement(&num); 变量加一个指定数 1 InterlockedAdd(&num, 100); 完整代码:
阅读全文
摘要:声明互斥量: 1 HANDLE mutex = NULL;//指针 创建互斥量 1 CreateMutex(NULL, FALSE, NULL);//创建互斥量 互斥量变为1 关闭互斥量 1 CloseHandle(mutex); 使用互斥量 1 WaitForSingleObject(mutex,
阅读全文
摘要:运行截图 创建事件 1 HANDLE event[4] = { 0 };//事件 创建线程 1 HANDLE hthread[3] = {0};//代表线程 创建临界区 CRITICAL_SECTION cs; 创建聊天缓冲区 1 volatile char str[1024] = { 0 };//
阅读全文
摘要:创建事件 1 HANDLE event[3] = { 0 }; 创建线程 1 HANDLE hthread[3] = { 0 }; 事件初始化 1 event[0] = CreateEvent(NULL, TRUE, FALSE, NULL); 2 //第一个参数,指定一个结构,用于设置对象的安全特
阅读全文
摘要:创建一个线程 1 _beginthread(myfun, 0, NULL);//返回值是一个HANDLE 1 hd[i] = CreateThread(NULL, 0, add, NULL, 0, NULL);//创建线程 线程内部结束 1 _endthread() 外部暂停线程 1 Suspend
阅读全文
摘要:运行截图: 结点结构体 1 typedef struct LinkNode 2 { 3 int data; 4 struct LinkNode *pPre; 5 struct LinkNode *pNext; 6 }node,*PNODE; 创建一个结构体保存头部和尾部 typedef struct
阅读全文
摘要:运行截图: html开发: 1 <html> 2 <body> 3 <form id="form" name="form" method="post" action="../cgi-bin/run.cgi"> 4 <p></p> 5 <input type="text" name="cmd1" id
阅读全文
摘要:双链表结点 //双链表节点 typedef struct LinkNode { int data; struct LinkNode *pPre; struct LinkNode *pNext; }node; 创建一个结构体保存双链表的头和尾 1 typedef struct info 2 { 3 n
阅读全文
摘要:初始化一个链表 1 list<int> mylist{ 1,2,3,4,6 }; 链表排序 1 mylist.sort(); 链表反转 1 mylist.reverse(); 链表删除头部和尾部 1 mylist.pop_back();//删除尾部 2 mylist.pop_front();//删除
阅读全文
摘要:运行截图: 节点的结构体定义 typedef struct queue { datatype data; int high;//优先级 struct queue *pNext; }Queue, *PQueue; //入队 入队的时候考虑优先级,优先级大的在前面 PQueue enq(PQueue p
阅读全文
摘要:运行截图: 创建记录分配的内存地址大小和地址的结构体 1 struct MEM 2 { 3 void *p; 4 int size; 5 }; 创建管理内存结构体的链表 1 typedef struct LinkNode 2 { 3 struct MEM *pmem;;//保存指针 4 struct
阅读全文
摘要:运行结果 链表定义 typedef struct LinkNode { int data; struct LinkNode *pNext; }node,*PNODE; 环形链表尾部添加 1 //尾部添加 2 PNODE addback(PNODE phead, int data) 3 { 4 //分
阅读全文

浙公网安备 33010602011771号