![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程脚印
文章平均质量分 62
北回归线丶
上帝创造了这个世界,程序员创造了另一个。
展开
-
从一个新的起点,重识C语言
作为计算机类专业的第一门课程,C语言有着千千万万的学习者和使用者,也从侧面证明C语言的实用和强大。而作为一名计算机专业的在读学生,处在关键的学习阶段,再次深入学习并熟练掌握C语言成为眼下最重要的事。 博主的第一身份是IT发烧友,坐标西安。因为对IT的热爱,报考志愿时,博主毅然将6个专业志愿全部填写为计算机及通信的相关专业。经过两年的学习,博主认识到一个个程序的背后是程序员敲下的一句句代码,而原创 2016-09-24 18:30:07 · 254 阅读 · 0 评论 -
TCP协议保证可靠交付的部分特点总结
一、使用UGG和PSH状态字段重点内容 1、URG推送位 紧急数据的起始点=序号; 紧急数据的终止点=序号+紧急指针;(综上,紧急指针就是记录紧急数据的字节数,紧急指针永远为正数)1)在紧急数据后面的数据为普通数据,需要按序缓存2)窗口为0也可以发送紧急数据3)紧急数据都处理完成后,tcp就告诉进程恢复到正常操作 例如,已经发送了很长的一个程序要在远地的主机上运转载 2017-06-20 17:29:33 · 1406 阅读 · 0 评论 -
select服务器编程综合
一、服务器端代码#include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<unistd.h>#include<stdlib.h>#include<netinet/in.h>#include<string.h>#include<sys/time.h>static void Usage(const char *转载 2017-06-30 11:16:39 · 327 阅读 · 0 评论 -
e-poll服务器编程综合
一、e-poll服务器代码#include<stdio.h>#include<stdlib.h>#include<sys/epoll.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<string.h>static void Usage(con转载 2017-06-30 11:19:25 · 309 阅读 · 0 评论 -
poll服务器编程综合
一、poll服务器代码#include<stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include<stdlib.h>#include<netinet/in.h>#include<poll.h>#include<string.h>static void usage(cons转载 2017-06-30 11:22:13 · 278 阅读 · 0 评论 -
linux自己创建守护进程
守护进程转载 2017-06-09 14:58:21 · 304 阅读 · 0 评论 -
Shell-彩色进度条~
#!/bin/bashnum=0str='#'max=100pro=('|' '/' '-' '\')while [ $num -le $max ]do ((color=30+num%8)) echo -en "\e[1;"$color"m" let index=num%4 printf "[%-100s %d%% %c]\r" "$str" "$num"转载 2017-07-11 17:41:48 · 261 阅读 · 0 评论 -
C语言实现简易网络进程及线程间通信
1.单进程通信客户端代码#include<stdio.h>#include<arpa/inet.h>#include<sys/socket.h>#include<stdlib.h>#include<unistd.h>#include<strings.h>#include<netinet/in.h>#include<string.h>void usage(const char *str转载 2017-06-23 08:39:28 · 3582 阅读 · 0 评论 -
Linux Shell中 eval语法调研
一、eval语法功能说明:告知shell取出eval的参数,重新运算求出参数的内容。语 法:eval [参数]补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。参 数:参数不限数目,彼此之间用分号分开。二、eval用法1. eval 命令行其中command-line是在终端上键入的一条普通命令行。然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它原创 2017-07-03 15:47:08 · 299 阅读 · 0 评论 -
CRC校验的理解和C语言实现
1、CRC是什么 CRC检验的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个检验码r位(就是CRC码),附在信息后面,构成一个新的二进制码序列数共(k+r)位,最后发送出去。接收端根据同样的规则校验,以确定传送中是否出错。接收端有两种处理方式:1、计算k位序列的CRC码,与接收到的CRC比较,一致则接收正确。2、计算整个k+r位的CRC码,若为0,则接收正确转载 2017-06-12 17:20:45 · 6602 阅读 · 3 评论 -
ARP协议的工作过程和局域网使用
一、ARP的工作过程 1. 原理:(ARP协议只使用于局域网中) 1> 在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。 2> 在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。 3>转载 2017-06-12 17:35:10 · 4579 阅读 · 0 评论 -
NAT & 代理服务器 ——在网络中金蝉脱壳
一、NAT NAT即Network Address Translation,它可以让那些使用私有地址的内部网络连接到Internet或其它IP网络上。NAT路由器在将内部网络的数据包发送到公用网络时,在IP包的报头把私有地址转换成合法的IP地址。 二、NAT的工作原理 内部网络中的一台主机想传输数据到外部网络时,它先将数据包传输到NAT路由器上,路由器检查数据包转载 2017-06-19 00:20:52 · 393 阅读 · 0 评论 -
NAT & 代理服务器 ——在网络中金蝉脱壳
一、NAT NAT即Network Address Translation,它可以让那些使用私有地址的内部网络连接到Internet或其它IP网络上。NAT路由器在将内部网络的数据包发送到公用网络时,在IP包的报头把私有地址转换成合法的IP地址。 二、NAT的工作原理 内部网络中的一台主机想传输数据到外部网络时,它先将数据包传输到NAT路由器上,路由器检查数据包转载 2017-06-19 00:17:28 · 226 阅读 · 0 评论 -
网络端口的小记
一、有效网络端口范围及分类 在Internet上,按照协议类型分类,端口被分为TCP端口和UDP端口两类,虽然他们都用正整数标识,但这并不会引起歧义 固定端口(0-1023): 使用集中式管理机制,即服从一个管理机构对端口的指派,这个机构负责发布这些指派。由于这些端口紧绑于一些服务,所以我们会经常扫描这些端口来判断对方 是否开启了这些服务, 动态端口转载 2017-06-19 00:11:04 · 362 阅读 · 0 评论 -
C语言实现进度条[背景+源码]
一、回车和换行的区别/n 换行将光标移动到下一行第一格相当于平时用的回车 /r 回车 将光标移动到当前行第一格'/r'是回车,'/n'是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。下面转一篇文章。背景:在计算机还没有出现之前,有一种叫做电传打字机(TeletypeModel 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完转载 2017-02-19 12:31:44 · 1701 阅读 · 0 评论 -
Linux中的进程描述符
一、进程和PCB进程是一个正在执行的程序。 进程是程序的一个实例。 进程能分配处理器并由处理器执行的实体。 如果从内核的角度看的话:进程是分配系统资源的单位。当一个程序被加载到内存之后并为他分配一个PCB(进程控制块),这时候就称为进程了。在Linux中PCB就是一个名字叫做task_struct的结构体,我们叫他”进程描述符”。它里面有进程执行的所有信息,所以CPU对task_s转载 2017-02-19 12:36:22 · 1125 阅读 · 0 评论 -
进程调度算法整理
1、FCFS(First come first serve),或者称为FIFO算法,先来先处理。这个算法的优点是简单,实现容易,并且似乎公平;缺点在于短的任务有可能变的非常慢,因为其前面的任务占用很长时间,造成了平均响应时间非常慢。2、时间片轮询算法,这是对FIFO算法的改进,目的是改善短程序(运行时间短)的响应时间,其方法就是周期性地进行进程切换。这个算法的关键点在于时间片的选择,时间片转载 2017-02-19 12:42:46 · 644 阅读 · 0 评论 -
C++中的this指针
一.this指针的实现[cpp] view plain copy #include using namespace std ; class Date1 { public: void InitDate(int year, int month, int day) { _转载 2017-02-20 21:17:43 · 231 阅读 · 0 评论 -
进程结束及Linux中的系统调用
一、atexit函数atexit()注册的函数类型应为不接受任何参数的void函数,exit调用这些注册函数的顺序与它们 登记时候的顺序相反。同一个函数如若登记多次,则也会被调用多次。#include #include stdlib.h> void exit_fn1(void) { printf("Exit function #1 called\转载 2017-02-20 21:24:51 · 577 阅读 · 0 评论 -
Linux基本--touch、find、三个时间
一、使用命令stat获取文件的三个时间 含义分别是时间名称简称中文名称含义linux 命令备注access timeatime访问时间最后一次访问文件或目录的时间ls -lu filename访问时间的更新并不是实时的modifytimemtime修改时间最后一次修改文件或目录转载 2017-02-14 23:18:59 · 522 阅读 · 0 评论 -
Cent OS 6.5下 vim编辑器推荐配置
转载 2017-02-16 00:27:00 · 468 阅读 · 0 评论 -
管道的数据结构及容量验证
一、管道的容量在管道一端不断写入将会阻塞管道,可以通过这一特点测试管道容量#include #include #include int main(int argc, char* argv[]){ int pipefds[2]; //[0] for read, [1] for write pipe(pipefds); char buf[4096]转载 2017-03-09 11:18:45 · 1691 阅读 · 0 评论 -
C++中继承的几大关键点
1、概念:继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。一个新类从已有的类中获得其已有的特性称为继承,被继承的称为父类(Base class)或基类,新产生的类称为派生类或子类。2、转载 2017-03-11 15:27:07 · 219 阅读 · 0 评论 -
C++中多态的几大关键点
1、什么是运行期多态?在程序执行期间(非编译期)判断所引用对象的实际类型,根据其实际类型调用相应的方法。使用virtual关键字修饰类的成员函数时,指明该函数为虚函数,派生类需要重新实现,编译器将实现动态绑定。 给出一个简单的代码:#includeusing namespace std ;class CBase{public: void FunTest1(int _iTest转载 2017-03-11 15:32:52 · 203 阅读 · 0 评论 -
C语言实现简单UDP协议服务端
一、源代码#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>//#include<netinet/in.h>#include<string.h>static void usage(const char * str){ printf(转载 2017-06-26 13:57:42 · 2920 阅读 · 0 评论