- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 malloc()的使用
我知道malloc在堆上,然后栈是系统管的,堆是用户管的。使用栈就象我们去饭馆里吃饭(或吃快餐),只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。但到底啥时候用malloc还是没搞清楚。其实具体还是看情况的,但万变不离其宗,就是:当无法知道内存具体的位置时,想要绑定真正的内存空间,就要用到malloc()函数。还是太抽象?那来
2022-02-17 14:21:34 511
转载 ssh过程原理讲解
本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机。另外,本人翻译了ssh客户端命令的man文档,如本文有不理解的地方,可以参考man文档手册:ssh中文手册。SSH系列文章: SSH基础:SSH和SSH服务SSH转发代理:ssh-agent用法详解SSH隧道:端口转发功能详解1.1 非对称加密基础知识对称加密:加密和解密使用一样的算法,只要解密时提供与加密时一致的密码就可以完成解
2021-12-31 18:03:35 3687
转载 ssh安全隧道
SSH系列文章:SSH基础:SSH和SSH服务SSH转发代理:ssh-agent用法详解SSH隧道:端口转发功能详解1.1 ssh安全隧道(一):本地端口转发如下图,假如host3和host1、host2都同互相通信,但是host1和host2之间不能通信,如何从host1连接上host2?对于实现ssh连接来说,实现方式很简单,从host1 ssh到host3,再ssh到host2,也就是将host3作为跳板的方式。但是如果不是ssh,而是http的80端口呢?如何让host1能访问host
2021-12-31 18:01:52 543
原创 socket通信代码实例+刨析
一对一的socket通信代码实例(可直接复制)server://socket server#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <string.h>#include <
2021-12-07 19:05:54 1231
转载 Linux—shell中$(( ))、$( )、``与${ }的区别
命令替换 在bash中,$( )与` `(反引号)都是用来作命令替换的。 命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。 exp 1 $ echo today is $(date "+%Y-%m-%d")today is 2014-07-01 $( )与`` 在操作上,这两者都是达到相应的效果,但是建议使用$( ),理由如下: ``很容易与''搞混乱,尤其对初学者来...
2020-11-06 09:40:11 585
原创 算法实现(C语言)
冒泡排序/*Bubble Sort*/#include <stdio.h>int main(){ int i = 0, j = 0; int a[5] = {2,6,3,1,5}; for(i = 0; i < 5; i++) { for(j = i; j < 5; j++) //注意j的初始值 { if(a[i] > a[j]) { int temp = 0; temp = a[i]; a[i] = a[j
2020-07-27 09:19:23 1060
转载 socket理论
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. ...
2020-07-14 19:24:52 156
转载 区分堆、栈内存里存放的变量
什么变量在堆内存里存放,什么变量在栈内存里存放堆和栈的区别 (stack and heap)一般认为在c中分为这几个存储区 1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束释放。 ...
2020-05-09 17:58:40 1723
原创 动态截取字符串并变成数组
#include<stdio.h>#include<stdlib.h>#include<string.h>int stringCount(char *str, char des){ int count = 0; char *p = NULL; p = str; while(*p != '\0') { if(*p == des) ...
2020-05-08 16:50:08 353
原创 sscanf函数
使用方法char week[16]="1,2,3,4,5,6,7";char dd[16]={0};sscanf(week,"%hhd,%hhd,%hhd,%hhd,%hhd,%hhd,%hhd",&dd[0],&dd[1],&dd[2],&dd[3],&dd[4],&dd[5],&dd[6]);printf("%d%d%d%d%...
2020-04-24 17:23:10 385
转载 ping知识
过程首先假设A ping B1.ping通知系统建立一个固定格式的ICMP请求数据包。2.ICMP协议打包这个数据包和B的IP地址转交给IP协议层。3.IP层协议将机器B的IP地址为目的地址,本机的IP地址为源地址,加上一些头部必要的控制信息,构建一个IP数据包。4.获取B的MAC地址,做这个操作首先机器A会判断B是否在同一网段内,若IP层协议通过B的IP地址和自己的子网掩码,发现它跟自...
2020-03-06 13:40:08 83
原创 DHCP状态图和过程图
DHCP状态图很重要,看懂这个基本就差不多了。抓报文的时候,你过滤DHCP的报文用的是bootp,为什么是这个呢?因为bootp是它的前身。
2020-01-19 11:07:54 1584 2
原创 位运算总结
“ << ” 运算符例如:1324<<1,相当于1324 % 2^11324<<2,相当于1324 % 2^11324<<3,相当于1324 % 2^1(有余取整)
2020-01-18 16:35:55 527
原创 Ubuntu安装软件
Ubuntu安装vimudo apt-get update // “Unable to locate package"错误的解决办法sudo apt-get install build-essentialsudo apt install vimUbuntu安装gccudo apt-get update sudo apt-get install build-essentialsud...
2019-12-13 15:32:32 230
原创 C语言 函数总结记录
snprintf()C 库函数,函数原型为:int snprintf (char *str, size_t size, const char *format, ...)作用将可变参数 “…” 按照format的格式格式化为字符串,然后再将其拷贝至str中。返回值若成功则返回预写入的字符串长度,若出错则返回负值。注意与snprintf的返回值不同,sprintf的返回值是成功写入的...
2019-11-18 19:07:30 254 1
原创 加密解密:公钥私钥过程详解
前言:为什么要加密这个东西,就不用多说了吧,比如我们出门的时候,总会有意识的把门用锁锁上,保证屋内东西的安全,虽然家贼难防,但至少可以防外贼(当然,也有贼可以从窗户进呀,但这里我想说,大哥大姐们,不要钻牛角尖)。那这个加密的也一样的,具体可看下述:...
2019-11-14 20:38:19 8011 1
转载 minidlna源码(2)
前言: 之前有专文介绍了minidlna中的UPNP功能,内中介绍其中包含的SSDP(简单发现协议),SOAP(简单对象访问协议)等几个协议(http://blog.csdn.net/sakaue/article/details/19070735)。本文将根据minidlna的程序流程,概述SSDP的流程,为下一...
2019-10-12 17:21:12 329
pk8文件转成pem文件过程.pdf
2019-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人