自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 linux静态库 共享库

静态库 libxxx.a 共享库 libxxx.so一个程序有文件夹111,222,333, 编译出来的可执行文件叫app1。现在要将文件夹111编译成库。如果编译成lib111.a,那链接时该.a就会融合到app1中,app1就会变大。但是我对外只需要提供app1就行了,因为它已经把.a包含到其中了。如果编译成lib111.so,那么链接时该库并不会融合到iapp1,运行app1时必须到对应路径下去找lib111.so。也就是使用该方式我们对外需要提供app1和lib111.so,当然

2022-05-09 10:05:03 211

原创 去掉fgets拷贝的回车符

使用fgets(),如果缓冲区够大,就会把行尾的回车符 ‘\n’ 也拷入。那怎么快速去掉回车符 ‘\n’ 呢?用下面的函数。头文件:#inclued<string.h>strcspn()用来检索字符串s1开头连续有几个字符都不含字符串s2中的字符,其原型为:int strcspn(char *s1, char *s2);【参数说明】s1、s2为要进行查找的两个字符串。strcspn()从字符串s的开头计算连续的字符,而这些字符都完全不在字符串s2中。简单地说,若strcspn()返回的

2022-03-30 14:24:46 2040

转载 什么是环境变量

转载自知乎前言在初学 Java 时,相信大家下载安装完 JDK 后的第一件事就是 「配置环境变量」,几乎所有的教程都会告诉你当你在命令行工具中输入了 java 命令和 javac 命令后看到类似如下的结果就说明你的 Java 环境配置好了不知道你有没有思考过这个「环境变量」究竟是什么?为什么配置了之后就会显示这样的内容,为什么不配置,就会提示你一个错误:‘javac’ 不是内部命令或外部命令,也不是可运行的程序或批处理文件如果你也有这样的疑问,不要着急,我们今天就来一探究竟。文内相关的

2022-02-14 13:29:54 1202

原创 TCP_UDP网络编程

一.TCP1.TCP流程-服务器端》》socket类型:流式套接字SOCK_STREAM数据报套接字SOCK_DGRAM原始套接字SOCK_RAW》》IP地址的转换:in_addr_t inet_addr(const char *strptr);功能: 将strptr所指向的字符串转换成32位的网络字节序二进制值如 inet_addr(“192.168.7.135”);char * inet_ntoa(struct in_addr inaddr); //struct in_add

2021-11-23 21:50:41 480

转载 ftell函数

ftell函数用于得到文件位置指针当前位置相对于文件首的偏移字节数,在随机方式存储文件时,由于文件位置频繁的前后移动,程序不容易确定文件的当前位置。/***a.txt***/asdgsdertdfhjtew/***ftell.c***/#include<stdio.h>int main(){ FILE *p = fopen("./a.txt","rb"); fseek(p,2,SEEK_SET); char buf[100] = {0};

2021-11-10 11:24:27 131

转载 接口VGA、DVI、HDMI、DP详解

显示器应该选择什么连接线呢?这是由显卡显示接口与显示器显示接口来决定的,但因为很多用户不了解这些接口的知识,那么就无法选择显示器连接线。接下来就为大家分享VGA接口、DVI接口、HDMI接口以及DP接口的基础知识。一、VGA接口知识VGA接口(即D-Sub接口)共15针,分为3排,每排5针,接口为D字型,用于传送模拟信号。VGA有着成熟的制造工艺、较宽的使用范围,它是模拟信号传输中最常见到的一种端口,占据了所有显示器、电视和投影机等产品必配备的接口份额,因此它的受众面非常广泛,拥有绝大部分视频设备的支持

2021-11-02 15:50:19 1407

原创 gcc分步编译

gccgcc file.c 如果没有错误,编译时生成一个可执行文件 a.out然后./a.out就输出了。./表示在当前目录下。要是不想生成a.out,比如想生成文件名叫test,就gcc file.c空格-o testgcc支持编译的一些源文件的后缀及其解释:.c c语言源代码.h 程序所包含的头文件.i 已经预处理过的C源代码文件 -E.s 汇编语言源代码文件 ..

2021-10-11 17:40:25 747

原创 wireshark图解ip报文分片

前言:ip分片如果丢了一片,整个报文都需要重传。所以网络传输都会减少ip分片的概率。tcp用MSS,而udp依靠上层协议,比如tftp。所以ip分片的报文不太好抓到,故使用两台pc运行vmware虚拟机。一台当client用udp发送4500字节的数据,一台当server接收后再用udp返回4500字节的数据。通过wirewark分析ip分片。最后会把程序附上。IP头中和分片有关的三个字段,如下图。摘自《计算机网络》第7版 谢希仁1.49是客户端,1.50是服务器...

2021-01-12 15:40:32 8096

转载 ”TCP连接“究竟是什么意思?

我们经常听到"建立TCP连接","服务器的连接数量有限"等,但仔细一想,连接究竟是个什么东西,是和电话一样两端连起一根线?似乎有点抽象不是么?1.久违的分组交换网络似乎这个概念只有在学校里学计算机网络才能接触到,但不过今天的话题其实和它离不开关系。我们知道最早的电话网络是以很容易理解的形式存在的,就是单纯的一根线加两端的设备,设备之间所沟通的所有信息都通过一根特定的电缆来回传输,如下图:这样的连接是我们特别好理解的,搭起两边的线,就是一个连接嘛!但是,我们讨论的是计算机网络!(严肃脸),计算机网络中

2020-12-04 17:00:32 6574 1

转载 fgets函数用法

注意一个问题:fgets的返回值指向的是缓冲区的地址,缓冲区的内容变了,fgets的返回值指向的内容自然就变了。例如:printf(“pget = %s\n”, pget);在调用fread函数之前和之后,printf打出的内容是不同的。...

2020-08-13 16:59:58 2364

原创 C语言字符数组清零

2020-08-13 13:51:39 2567

原创 [secureCRT]保存终端打印信息到文件

这个地方打钩很方便,当不想要现在的内容时,直接断开连接再重连,就重新记录了。

2020-07-30 15:17:08 2890 1

原创 预处理define和defined

找不到出处是哪里了…#ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如#if defined (AAA) && defined (BBB)xxxxxxxxx#endif#if defined (AAA) || VERSION > 12xxxxxxxxx#endif而#ifdef 就不能用上面的用法,也就是说,当你要判断单个宏是否定义时#ifdef 和 #if defined 效果是一样的,但是当你要判断复杂的条件时,只能用 #if

2020-06-15 13:35:56 297

转载 TCP层的分段和IP层的分片之间的关系 & MTU和MSS之间的关系

首先说明:数据报的分段和分片确实发生,分段发生在传输层,分片发生在网络层。但是对于分段来说,这是经常发生在UDP传输层协议上的情况,对于传输层使用TCP协议的通道来说,这种事情很少发生。1,MTU(Maximum Transmission Unit,MTU),最大传输单元(1)以太网和802.3对数据帧的长度都有一个限制,其最大 值分别是1500和1492个字节。链路层的这个特性称作MTU。不同类型的网络大多数都有一个上限。如果IP层有一个数据要传,且数据的长度比链路层的 MTU还大,那么IP层就要进行

2020-05-13 11:52:29 451

原创 [wireshark]IP头校验和错误的解决方案

Wireshark测试的时候发现了好多的包都被标记为 Bad Tcp把包打开仔细查看后发现只有一个问题就是:header checksum == 0x0000查阅了大量资料后发现原来是网卡的自动计算校验和在作怪。网卡驱动的高级配置中,一般有两项叫做Rx Checksum Offload和Tx Checksum Offload以win7为例,可以看下图所示:其中的 “IPv4硬件校验和”即对应了这两个选项,它的可选项有“Rx & Tx 开启、Rx开启、Tx开启和关闭”四个。默认的配置往往

2020-05-11 15:03:59 3852 1

原创 多级指针

例子1:int i= 10;int *p = &i;int **q = &p;int ***r = &q;int i= 10;int *p = &i;int **q = &p;int ***r = &q;printf("i = %d\n", ***r);例子2例子:工作中遇到的三级指针#include<std...

2020-03-30 17:14:04 143

转载 Linux内核中经典链表 list_head 常见使用方法解析

做内核驱动开发经常会使用linux内核最经典的双向链表 list_head, 以及它的拓展接口(或者宏定义): list_add , list_add_tail, list_del , list_entry ,list_for_each , list_for_each_entry …每次看到这些接口,感觉都很像,今天专门研究了一下内核,对它们做一些总结,希望为后续开发提供方便。首先找到list...

2020-03-30 11:03:18 646

原创 source insight4.0显示标签

2019-12-30 13:50:22 1306

转载 linux内核list_splice函数 (拼接两个链表)

/*********************************拼接两个链表:1.如果新增的链表只有一个链表头就不做任何处理(因为链表头不包含数据)2. (head 2 3) + (add 5 6) ==> (head 5 6 2 3) //抛弃链表头add*********************************//* Join two lists. *...

2019-09-04 15:23:37 2426

原创 大小端

1.判断大端存储还是小端存储?大端小端只在数据类型的长度超过一个字节时才有意义!1.1 用共用体的方式#include<stdio.h> union un{ char ch; int a; short b;}; /*若int占4个字节,那char就在int的最低的那个字节,short就在int的低的 那两个字节字节。变量都是从低位开始往高位存储,变量的起始地...

2019-08-14 17:46:09 407

原创 顺序表查找优化--哨兵编程技巧

j节选自《大话数据结构》/*顺序查找,a为数组,n为要查找的数组个数,key为要查找的关键字*/int Sequential_Search(int *a, int n, int key){ int i = 0; for (i = 1, i <= n, i++) { if (key == a[i]) { return i; } } return 0;}/...

2019-07-23 18:51:27 843

原创 二维数组

概述int a[3][4];总共是12个元素,可以当成3行4列看待,分别是a[0][0] a[0][1] a[0][2] a[0][3]a[1][0] a[1][1] a[1][2] a[1][3]a[2][0] a[2][1] a[2][2] a[2][3]a[i][j] 表示第i+1行,j+1列的元素int a[m][n];该数组右下角最后一个元素是a[m-1][n-1]...

2019-06-11 15:15:56 13826

原创 哈希表 链地址法

/***************************************************目的:将一堆整数存入hash表键值:本身哈希函数的构造方法:除留余数法散列冲突方法:链地址法***************************************************/#include <stdio.h>#include <stdlib...

2019-03-28 16:37:25 4244

原创 郝斌数据结构7排序之冒泡选择

一. 冒泡排序比较相邻的元素。如果第一个比第二个大,就交换他们两个对每一对相邻元素作同样的工作。第一次后,最后的元素是最大的数针对所有的元素重复以上的步骤,除了最后一个持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较二. 选择排序首先通过n-1 次比较,从n个数中找出最小的,将它与第1个数交换。第一次结束,最小的数放在第1个再通过n-2次比较,从剩余的n-1个...

2019-03-20 19:24:45 159

原创 郝斌数据结构6树

1 树的定义专业定义:有且只有一个称为根的节点;有若干个互不相交的子树,这些树本身也是一棵树通俗的定义:树是由节点和边组成;每个节点只有一个父节点但可以有多个子节点;但有一个节点没有父节点,它叫做根节点2 树的专业术语节点、父节点、子节点、子孙、堂兄弟深度:从根节点到最底层节点的层数称之为深度,根节点是第一层叶子节点:没有子节点的节点非终端节点:实际就是非叶子节点度:子节点的个数...

2019-03-20 18:46:33 166

原创 郝斌数据结构5递归之汉诺塔

1 汉诺塔汉诺塔问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。可以从百度上搜汉诺塔的小游戏玩一下,就明白了!或许下面的解释会好理解一些:现在要求庙里的老和尚把这64个盘子...

2019-03-20 17:46:51 170

原创 郝斌数据结构4递归

1 定义一个函数自己直接或间接调用自己2 举例#include <stdio.h>#include <stdlib.h>void f(int n){ if (1 == n) { printf("哈哈\n"); } else { f(n-1); }}int main(void){ f(7); return 0;}运行结果...

2019-03-20 14:49:38 188

原创 郝斌数据结构3队列

一. 队列定义: 一种可以实现“先进先出”的存储结构栈只允许在一端进行操作,而队列在两端操作,队尾进行存入,队头进行删除静态队列(连续队列) 动态队列(链式队列)静态队列通常必须是循环队列静态循环队列要搞清楚的问题:A. 静态队列为什么必须是循环队列防止浪费空间B. 循环队列需要几个参数来确定需要2个参数来确定: 队头指针front和队尾指针rear。队.........

2019-03-19 20:07:37 191

原创 郝斌数据结构2栈

一. 连续栈栈的定义: 一种可以实现“先进后出”的存储结构栈类似于箱子,只允许在一端进行操作栈分类: 静态栈(连续栈) 动态栈(链式栈)操作: 入栈 出栈连续栈程序:#include <stdio.h>#include <stdlib.h>#define N 64typedef int datatype;typedef struct...

2019-03-19 19:59:27 112

原创 郝斌数据结构1线性表

一. 连续存储–>数组数组的增删改查程序#include <stdio.h>#include <stdlib.h>#define N 100typedef int datatype; // typedef有分号!!//这样如果想定义char型数组,就把int改成char就行了typedef struct{ datatype data[N]; i...

2019-03-19 19:53:09 286

原创 C语言字符串转换为十六进制字符数组

要求:char cArr[20] = “a1b2c3d4e5f6”; //字符个数双数,小写char cBrr[6] = {0xa1, 0xb2, 0xc3, 0xd4, 0xe5, 0xf6};调用函数,参数1传入cArr, 参数2传入cBrrunsigned int persist_ssl_hashKeyConvert(char *pUserInput, char *pKeyArra...

2019-03-12 14:32:34 11168 3

转载 linux 读写锁

转载自https://www.cnblogs.com/wzben/p/5432518.html读写锁是一个可以分写状态和读状态的锁,可以分别加上写状态或读状态的锁。在读模式的锁下,所有试图以读模式获得它进行加锁的线程都可以获得锁,所有希望以写模式获得它的都会被阻塞。在写模式下,读写锁都被阻塞。读写锁又成共享互斥锁。简单的说,读模式的加锁下,所有进程都可以获得读锁,但都不能获得写锁。在写模式下...

2019-03-05 13:58:48 240

转载 脚本语言中的脚本啥意思

作者:孙芋头链接:https://www.zhihu.com/question/19901542/answer/20163098来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。现在的计算机术语中,脚本已经司空见惯,PHP, Python, Javascript, VBscript等等。但是,你是真正了解为什么Script叫脚本,脚本又是什么意思??脚色的来历...

2019-01-30 16:53:11 568

原创 不同网段之间为何ping不通

问了测试部的张贤,我俩英雄所见略同。两台电脑PC1,PC2。通过网线直连。PC1: 192.168.1.22/24 PC2: 192.168.1.33/24PC1 ping PC2 先用ip2和自己的mask1相与,看看是不是同一网段。如果是同一网段,发送ARP,查ip2的mac。但假如PC1: 192.168.1.22/24 PC2: 192.168.3.33/24PC...

2019-01-28 14:04:08 9872

转载 网关及网关作用

什么是网关网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域互连,也可以用于局域网互连。网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同...

2019-01-25 15:24:49 2347

原创 B类地址第一个可分派的网络号为什么不是128

转载自知乎这是个不错的问题,发现网络就是有很多细节的地方容易忽略。至少这个问题我之前并没有特别注意过,但是当看到了之后发现竟然一时答不上来。关于全0和全1,以前就是关注子网的主机位地址,分别代表子网的网络号和广播地址。但是网络地址全0是怎么回事缺忽略了。维基百科上关于分类网络的内容中都没有详细说明https://zh.wikipedia.org/zh/分类网络然后查了 RFC 791 -...

2019-01-24 15:43:20 3801 2

原创 关于MAC地址和IP地址的理解

转载自知乎1、ISO-OSI七层模型只是个模型,没有任何实用系统是依照这个模型设计的2、要学会分层次的看问题,不要把不同层次的问题搅到一起举例来说,MAC地址是以太网地址,用来解决同一个局域网中不同以太网卡之间的寻址。说的通俗点,MAC寻址机制就好像跑街道上大喊“XXX,取邮件”,然后XXX就知道这个邮件是自己的了。如果XXX住另一个街区呢?不好意思,那他就听不到了——你要换个全世界都能听到...

2019-01-24 15:41:20 1162

原创 两个ip是否在同一网段?

转载自知乎:有两台设备,设备A:IP 172.33.4.101/16 设备B:IP 172.33.4.106/24 那么设备A的网络号是:172.33 设备B的网络号是:172.33.4 显然不在一个网段,但是两台设备经过一台交换机进行二层转发可以ping通。 这是什么原因?是我对同一网段的理解有误吗?觉得最好的回答:我们在这里有两个主机,四个元素:主机A:IP-A/掩码A主机B:IP-...

2019-01-24 14:16:29 3385

转载 Source Insight4.0 中文注释为乱码解决办法

转载自:https://blog.csdn.net/bjarnecpp/article/details/70174752干货:Source Insight 4 的解决办法(source insight 3.5 及以下版本就到其他地方看看吧)【解决办法】:单个文件乱码解决办法: 菜单栏中【File】 &gt; 【Reload As Encoding...】 &gt; 【Chinese S...

2019-01-22 13:48:54 2727

空空如也

空空如也

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

TA关注的人

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