自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 HTTP 属性

HTTP 属性又忘了,记一下吧字段名解释no-cache并非是不缓冲资源,而是不使用过期的资源,如果一定要使用,需要进行验证。no-store这个才是不缓冲任何资源未完待续

2020-07-30 17:49:01 68

原创 C 与 C++ 分析

继上一篇分析出现未定义ldsym函数的分析,现在在此的基础上分析C与C++一点重要的区别!还是先写一下代码吧#include <stdio.h>void test(void){ printf("Hello World");}// 保存成a.c,注意一定是.c,不可以.cpp//运行 gcc -Wall -fPIC --shared a.c -o liba.so//这就生成了liba.so动态库然后在写下面的代码#include <stddef.h>#

2020-07-17 17:10:08 88

原创 undefined reference to symbol ‘dlsym@@GLIBC_2.4‘ 解决

下面来看一下我编译时报错的信息下面我再给出一个代码,大家运行一下#include <stdio.h>void test(void){ printf("Hello World");}//保存以.c文件,并且以gcc -fPIC --shared a.c -o liba.so 运行下面再运行一个代码#include <stddef.h>#include <dlfcn.h>int main(void){ void *handle =

2020-07-16 00:09:23 1076 3

原创 C++ memcpy 实现

一个memcpy函数包含了许多边界问题,手写一下加深自己的印象#include<iostream>using namespace std;void memcpy(void *pDst ,void *pSrc ,size_t length){ char *dst=static_cast<char*>(pDst); char *src=static_cast<char*>(pSrc); if ((src==nullptr)||(dst==nullptr))

2020-07-13 23:40:06 194

原创 求数组中两个不同的数

algorithm题目:在给定int数组中存在着两个不同的数字,而其他数字都存在另一个数与它对应(相同),求出此数组两个不同的数字。解法:熟悉C++位操作的同学知道一种位操作(异或)能够消除相同的数据,规则是1^1=0;1^0=1;0^1=1;0^0=1;显而易见,位上相同异或会置0,位上不相同会置1,所以相同的数字在进行异或时,会变为0,而对于任何数异或0都是它本身。...

2020-04-28 23:47:41 97

原创 libcurl库 curl_setopt函数 CURLOPT_SSL_VERIFYHOST参数分析

最近使用C++ libcurl库,能够构建一个HTTP请求以及其他协议请求。对curl_setopt函数进行一些知识总结以免忘记。CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);三个点号代表后面还有未知个参数,这个和printf函数是一样的,可以去网上查查看这个。第一个参数:使用curl_init函数创建出来的对...

2020-04-10 20:08:03 321

原创 Unix 进程终止

C语言程序总是由main函数开始执行,main函数原型为int main (int argc, char* argv[]);第一个参数是指参数个数,而第二个参数是多个字符串组成的数组。正常的进程终止方式main函数执行完毕调用exit()函数调用_exit()或者_Exit()函数最后一个线程从其启动例程返回在最后一个线程中调用pthread_exit()异常终止的方式调用a...

2020-03-02 20:11:22 63

原创 Win10 修改hosts文件小结 (无须修改权限控制)

有些时候又需要修改hosts文件,虽然只是偶尔,还是做个总结吧。0. 管理员运行cmd1. 输入命令“cd C:\Windows\System32\drivers\etc",回车,进入hosts文件目录2. 输入命令“notepad hosts",回车,用记事本打开hosts。当然也可以使用notepad++、Sublime Text等打开。3. 这样的方式打开host文件后,我们就可以修...

2020-02-12 23:48:58 65

原创 Python 使用dpkt提取五元组

这个是在实习期间做的一个小程序,用来提取包的五元组。提取包可以用wireshark进行保存,也可以使用师兄开发的程序Streamdump进行抓包,格式为pcap这个程序的目的是抓取五元组:目的IP,目的端口,源地址,源端口以及ServerName。也可以作其他修改,提取需要的东西。存在一些奇怪的包是解析不出来的,那些奇怪的包我还以为是我的程序有错误,特意把包的地址放在了数据库字段中,经查阅确实...

2020-02-11 22:07:21 732

原创 I/O模型比较

I/O复用适用于很多网络通信中,有以下适用场景:当用户处理多个描述符,在socket通信中,服务器accept函数等待用户完成TCP三次握手,在未完成队列中处理监听套接字和在服务器在键入数据准备发送给客户端时,例如用fgets函数进行阻塞等待输入完成,这两种情况,不能阻塞在特定的描述符上,否则可能会引起软中断而终止程序。单个服务器处理多个已连接套接字,就应该使用I/O复用让它成为迭代服务器处...

2020-01-07 22:14:59 44

原创 主机字节序与网络字节序(大小端)

在网络编程中,分为主机字节序和网络字节序。字节序分为大端和小端问题。网络字节序约定以大端为主,而主机就没有这样的约定,在Windows、Linux、Mac等主机上可能就是大小端的其中一种。例如有这样一个十六进制数字0x12345678,它占了4个字节,每个字节8位,两个16进制占8位(一个16进制为24 ,两个16进制为28 )。这个高字节位是最让人迷惑的地方,比如上面这个数,高字节位就是挨着0...

2019-12-25 12:00:33 135

原创 Qt5.12获取本机IP地址

最近在写有关Qt网络通信方面,下面是一个小模块,获取主机的IP地址。QString get_local_ip(){ QHostInfo info = QHostInfo::fromName(QHostInfo::localHostName()); // 找出一个IPv4地址即返回 foreach(QHostAddress address,info.addresses()...

2019-12-09 21:29:36 103

原创 判断数组中是否有重复元素

对于n个 0 ~ n-1的数组,查找其中重复的数字。许多面试题类似于这种,而且有些还有附加条件,最后说吧。刚开始我们可能想到,用一个同样大的数组的下标标识这个数组的每一个元素,而新的数组的值是这个下标在原来数组中出现了多少次。如下: bool hasTheSameNum(int a[],int length) { int*p =new int[length]; for (in...

2019-12-04 22:12:09 48

原创 揭开字符的面纱(二)

上面一节提到了字符的表示方式,这一节主要讲他们的由来以及微软给出的解决方案。在《Windows核心编程中》有提到,从Windows NT开始,Windows的所有版本都完全用Unicode来构建。这个意思就是说,即使你用的是ASCII字符或者ASCII字符串(一个字符一个字节),都将在内部转换成Unicode字符。**在大部分的Windows的API中都有xxxxxxA、xxxxxxW以及xxx...

2019-11-21 20:56:49 35

原创 揭开字符的面纱(一)

在以前,一个字节8位最多表示256个字符(但是计算机字符编码只有0-127的编码。被称为ASCII字符集),对于中文汉字是远远不够的。为了支持这些语言文字系统,双字节字符集(double-byte character ser,DBCS)因此而生。在双字节字符集中,一个字符串中的每个字符都有1或2个字符组成。对于这种不确定的字节数我们是很难判断的,Unicode也因此而生,正因为一句老话,存在即合理...

2019-11-20 22:29:31 37

原创 open()与openat()区别

从Linux2.6.16开始,引用了openat函数。主要解决两个问题:让线程可以使用相对路径名打开目录中的文件,不再是只能打开当前目录中的文件。同一进程中的所有线程共享当前目录,很难让同一进程中的线程工作在不同目录。避免time-of-check-to-time-of-use(TOCTTOU)错误。如果有两个基于文件的函数调用,并其中一个依赖另一个的结果,这个程序是脆弱的。这两个调用都不是...

2019-11-19 11:40:54 409

原创 fork()函数

在学习Unix环境编程和Unix网络编程中,都遇到了fork()函数,于是想写一篇文章来说明一下自己的感悟,方便以后查吧。如果有错误的地方,还需要大佬们多多指点。示例采用Unix环境编程上1-7的例子#include "apue.h"#include <sys/wait.h>int main(void){ char buf[MAXLINE]; pid_t ...

2019-11-14 14:36:03 44

原创 MySQL 5.7 安装与卸载

安装方法笔者是参考菜鸟教程的,这里附上链接MySQL 菜鸟教程MySQL 5.7.27安装包下载安装包后解压放在安装盘下面就行了现在在解压目录下添加my.ini配置文件,记得是和bin在同一级目录下,如图。[mysqld]port = 3306basedir=G:\mysql-5.7.27-winx64# MySQL程序安装目录datadir=G:\mysql-5.7.27-w...

2019-10-15 17:41:15 90

原创 MySQL5.7 2006:MySQL server has gone away解决办法

我们在导入sql文件时,由于数据过大,而发生错误。笔者这几天遇到了想MySQL数据库中许多错误,这就是其中一个。发生这个错误说明你即将导入的数据包过大,默认允许4M。两个办法:一、命令行修改:这里笔者已经修改了,再修改一次也无妨。注意看!!!max_allowed_packet这里是以字节为单位的,也可以直接写500M。笔者用的是5.7版本,其他版本了解不是很多。但是如果你的my....

2019-10-14 23:09:22 510 3

原创 Linux 同步地区时间

在虚拟机上安装Ubuntu,可能会出现系统时间和当地时间不一致。新版的Ubuntu可以用 timedatectl 命令来设置系统时间timedatectl set-timezone "Asia/Shanghai" 在这里设置和上海同步时间timedatectl status已经成功设置本地时间了...

2019-09-18 17:28:04 67

原创 安装AndroidKiller常见问题

今天使用AndroidKiller反编译了一些APP,总结一下吧AndroidKiller 链接:https://pan.baidu.com/s/1n5q7htt17oH5h1D9upXeQA 提取码:8upvapktool 链接 :https://ibotpeaches.github.io/Apktool/ 下载最新的就行了Android KIller是不更新了,但是主要的工具还是...

2019-08-03 11:45:39 1266

转载 C++基本数据类型分析

C++基本数据类型整数类型有符号整数无符号整数浮点数型整数类型在32位计算机中,数据都是以DWORD(双字)的形式存储的。对于不同的整数类型有不同的存储机制,例如无符号整数的可表示的数值大小要比有符号整数大一倍,有符号整数中负数和正数的表示是不一样的。不管是有符号还是无符号,在计算机内存中存储的时候都是“小端序”形式存放的,即高字节放在高地址,低字节放在低地址,注意是以字节为单位,而不是以1...

2019-07-29 23:34:16 75

原创 面试题-在main函数之前或之后执行一些操作

前几天去面试,碰到一道题,在main函数执行之前或之后执行一些操作,当时没做出来,对基础还是有些欠缺首先我觉得考的变量的作用域和创建时间,所以我们可以用全局变量。这不是唯一的解法,希望大佬能提出宝贵意见。class A{public: A(){ cout << "do something first" << endl; } ~A(){ cout &lt...

2019-05-24 09:34:28 572

原创 位操作之交换两个数

交换两个数直接上菜平常的方法我们可以这样:void Swap(int &a, int &b){ int temp=0; temp=a; a=b; b=temp;}&为引用,相当于一个变量的别名,可以直接对变量操作。void Swap(int &a, int &b){ if (a != b) { a ^= b; b ^= ...

2019-05-09 10:01:50 373

原创 位操作之两数相加

【1】位操作之两数的平均值计算机内数值都是以二进制存储的,位操作是直接对内存中二进制进行操作,所以处理速度是非常快的。如果能加深理解位操作,对自己的能力也是一种提升,更容易在面试中,让我们脱颖而出。面试题之一:计算两个数的平局值如果我们直接写(a+b)/2,面试官肯定是不愿意看到的,如果用位操作,我们可以这样写:int ave(int x, int y){ return (x&y...

2019-05-07 21:14:33 196

Visual_Assist.rar

vs2013、vs2010可用智能提示:关键字的提示,已有函数名、类名、类成员的提示; 代码高亮:关键字、类名、函数名等用不同的颜色进行高亮,方便代码的阅读; 快速追踪:声明与实现的快速跳转,.cpp与.h文件的快速切换; 高效查找:文件名的查找,标识符的查找;

2020-04-21

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除