shell脚本实现彩色进度条

产生进度条的元素: 1.一个不断向右增长的容器,可以直观看出当前的进度。 2.一个反应进度的百分比,在这里用到转义字符"%%",代表的是"%" 3.一个标志,反应该进度是正在运行还是卡死,在程序中体现的是char *...

2017-07-05 10:06:03

阅读数 219

评论数 0

内存泄露、内存溢出以及解决方法

内存溢出即用户在对其数据缓冲区操作时,超过了其缓冲区的边界;尤其是对缓冲区写操作时,缓冲区的溢出很可能导致程序的异常。 A) 比如在程序中多使用strcpy_s、memcpy_s等具有缓冲区大小检查的函数,去取代strcpy、memcpy等; B)给工程设置编译选项/WX开启(“将警告视为错误”...

2017-07-03 11:28:24

阅读数 956

评论数 0

素数的求解方法:

一、朴素判断素数算法 就判断素数而言,事实上是非常简单的了。根据定义,判断一个整数n是否是素数,只需要去判断在整数区间[2, n-1]之内,是否具有某个数m,使得n % m == 0。代码可以这么写

2017-07-02 23:10:50

阅读数 383

评论数 0

STCP与TCP协议

(1)首先SCTP和TCP之间的最大区别是SCTP的连接可以是多宿主连接的,TCP则一般是单地址连接的 (2)其次SCTP是基于消息流,而TCP则是基于字节流。 (3)在网络安全方面,SCTP增加了防止恶意攻击的措施。不同于TCP连接采用的三次握手机制,SCTP连接采用四次握手机制, 有效的防止了...

2017-07-01 15:52:01

阅读数 2572

评论数 0

linux命令之eval

eval可以读取一连串的参数,然后按照参数特性来执行。参数数目不限,彼此之间用分号隔开。 eval会对后面的cmdLine进行两遍扫描,如果在第一遍扫面后cmdLine是一个普通命令,则执行此命令;如果cmdLine中含有变量的间接引用,则保证简介引用的语义。也就是说,eval命令将会首先扫描命令...

2017-07-01 14:54:48

阅读数 236

评论数 0

I/O多路转接之poll服务器

函数说明: #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout); 参数说明: fds:是一个struct pollfd结构类型的数组,用于存放需要检测其状态的Socket描述符;每当调用...

2017-06-30 15:25:37

阅读数 192

评论数 0

]I/O多路转接(二)之epoll服务器

epoll是为处理大批量句柄而作了改进的poll。当然,这不是 2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的...

2017-06-29 22:39:44

阅读数 182

评论数 0

I/O多路转接(一)之select_server

select模型的特点: (1)可监控的文件描述符个数取决与sizeof(fd_set)的值。 (2)将fd加入select监控集的同时,还要再使用一个数据结构array保存放到select监控集中的fd。 (3)可见select模型必须在select前循环array(加fd,取maxfd),se...

2017-06-28 15:09:47

阅读数 176

评论数 0

高级I/O模型(2)--dup/dup2

dup和dup2是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。 这两个函数的原形如下:利用函数dup,我们可以复制一个描述符。 传给该函数一个既有的描述符,它就会返回一个新的描述符,这个新的描述符是传给它的描述...

2017-06-28 14:06:39

阅读数 225

评论数 0

linux之UDP_server

UDP它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。 传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实...

2017-06-26 14:10:27

阅读数 4766

评论数 0

高级I/O模型(1)--socketpair

非阻塞IO,纪录锁,系统V流机制,I/O多路转接(select/poll),readv和writev函数以及存储 映射IO(mmap),这些统称为高级IO。 pipe用来创建管道,但是单个管道只能单向通信,⼀端用于读,⽽而另一端用于写。如果要实现进程双向通信,必须创建一对管道。而socketpai...

2017-06-25 15:56:20

阅读数 310

评论数 0

Linux--进程池,线程池

池的概念: 由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正是运行阶段,即开始处理客户请求的时候,如...

2017-06-24 19:35:23

阅读数 531

评论数 0

多进程以及多线程socket编程

多进程,多线程socket编程与单进程不同的只是服务器端的不同,客户端是一样的。 多进程:父进程fork子进程, 子进程退出,但是子进程的子进程仍在运行,变成了孤儿进程,由1号进程回收,父进程不用等待子进程的子进程的退出,它俩是爷孙进程,不用回收子进程。 多线程:不用关闭多余的文件描述符表,...

2017-06-23 11:40:28

阅读数 1536

评论数 0

单进程socket编程

在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成 的socket pair就唯一标识一个连接。

2017-06-22 23:03:31

阅读数 831

评论数 0

linux命令之Xargs用法详解

之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令, 例如:find /sbin -perm +700 |xargs ls -l xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料...

2017-06-21 12:58:24

阅读数 286

评论数 0

哈希桶的实现

【开散列法】 开散列法又叫链地址法(开链法)。 开散列方法首先对关键码集合用某一个散列函数计算他们的存放位置。若设散列表地址空间的 所有位置是从0到m-1,则关键码集合中的所有关键码被划分为m个子集合,通过散列函数计算出来的 具有相同地址的关键码归于同一子集合。称同一子集合中的关键码互...

2017-06-20 12:32:29

阅读数 2554

评论数 0

搜索结构之哈希表(线性探测法)

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

2017-06-20 12:01:58

阅读数 13032

评论数 0

TCP的三次握手与四次挥手

为什么建立TCP连接需要三次握手? 原因:为了应对网络中存在的延迟的重复数组的问题例子:假设client发起连接的连接请求报文段在网络中没有丢失,而是在某个网络节点长时间滞留了,导致延迟到达server。本来这是一个已经失效的连接报文,但是server接收到这个连接报文之后,误认为client发起...

2017-06-20 08:08:56

阅读数 202

评论数 0

TCP协议中的定时器

TCP协议中的定时器: (1)连接建立(connection establishment)”定时器 (2)“重传(retransmission)”定时器 (3)“延迟ACK(delayed ACK)”定时器 (4)“持续 (persist)”定时器 (5)“保活(keep alive)”定时器 ...

2017-06-20 07:46:07

阅读数 206

评论数 0

URG(紧急位)与PSH(急迫位)

URG(紧急位): 紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。T C P的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲的),...

2017-06-20 07:27:25

阅读数 300

评论数 0

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