3 zhu_931

尚未进行身份认证

暂无相关简介

等级
TA的排名 12w+

博客不先说结论的人

博客不先说结论的人   为了让全文看来有理有据?   …………   然而,我只想拿到结果。   于是我扫了开头,瞄了结尾,踩一下都显得多余,继续寻找答案。...

2018-08-10 09:14:23

WIN10 拨号连接下开启移动热点

win10校园网下开启热点  本段文字用以解决win10下无法建立移动热点,错误提示为:我们无法设置移动热点,因为你的电脑未建立以太网,WIFI或手机网络连接。这个问题可能出现在拨号上网连接的设备上。具体步骤如下:  1.首先用手机或其他设备建立无线热点。  2.电脑连接步骤1中的热点,电脑端打开移动热点。  3.电脑端建立拨号上网连接,断开电脑与手机的无线连接。  4.

2017-12-17 14:37:33

TCP与UDP协议的比较

1 UDP的特点   UDP提供不可靠的交付,但也有优点:   1) 发送数据前不需要建立连接,减少开销与发送数据的延迟。   2) UDP不使用拥塞控制,不保证交付,减少了复杂的连接状态表,网络的拥塞不会使源主机的发送速率降低。   3) 数据报首部字节比TCP少,节约开销。   所以UDP适用于实时应用,网络拥塞时允许丢失一点数据。 2 TCP的特点   TCP是面向连接的运输层协

2017-07-25 18:59:13

路由生产算法

1 路由的一些概念   路由节点: 一个具有路由能力的主机或路由器,它维护一张路由表,通过查询路由表来决定向哪个接口发送数据包。   接口: 路由节点与某个网络相连的网卡接口。   路由表:由很多路由条目组成,每个条目都指明去往某个网络的数据包应该经由哪个接口发送,其中最后一条是缺省路由条目。   路由条目:路由表中的一行,每个条目主要由目的的网络络地址、子网掩码、下一条地址、发送接口四部分

2017-07-24 16:58:39

链表翻转,每K个数翻转一次。

链表翻转,每K个数翻转一次,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6。   解题思路:   寻找每一段的开始与结束,对每一段进行翻转。代码如下(代码不含测试用例以及链表的构建): void _ReserveK(Node** begin, Node** end) {

2017-07-23 22:10:27

代理服务器(Proxy Server)与网络地址转换(NAT)

1 代理服务器概念   一个终端通过代理与另一终端进行连接,提供代理的便是代理服务器。 2 代理服务器的原理   1) 客户端与代理服务器连接。   2) 客户端向代理服务器发送数据请求 。   3) 代理服务器向客户端返回数据(如果代理服务器里有需要的缓存数据,直接返回缓存数据,否则,代理服务器向目的服务器请求数据)。 3 常见的代理服务器   1) HTTP代理,采用http协议的

2017-07-21 12:55:46

ARP协议

1 ARP协议概念    ARP协议的目的:得到的主机的硬件地址。原理:源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。 2 ARP报

2017-07-20 12:22:16

计算机网络下循环冗余检测(CRC)

1 概念   CRC即循环冗余校验码(Cyclic Redundancy Check[1]):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。概念来自百度百科CRC校验 2 CRC校验的原理   在数据链

2017-07-19 12:43:52

Linux下守护进程

1 守护进程的概念   守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端,不能直接和用户交互。其它进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫守护进

2017-07-18 11:15:00

Linux下父进程异步等待子进程

1. 背景知识   我们可以使用wait和waitpid函数清理僵死进程,父进程可以阻塞等待子进程结束,也可以非阻塞地查询是否有子进程结束等待清理(也就是轮询的方式)。采用第一种方式,父进程阻塞了就不能处理自己的工作了;采用第二种方式,程序实现复杂。其实,子进程在终止时会给父进程发SIGCHLD信号,该信号的默认处理动作是忽略,父进程可以自定义SIGCHLD信号的处理函数,这样父进程只需专心处理自

2017-07-17 10:00:56

Linux下线程安全与可重入函数

本文参考《深入理解计算机系统》原书第三版第12章 并发编程 1 线程安全的概念    一个函数被称为线程安全的(thread-safe),当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。如果一个函数不是线程安全的,我们就说它是线程不安全的(thread-unsafe)。 2 四个线程不安全的函数类   1) 不保护共享变量的函数。当我们定义一个全局变量,然后创建多个线程进行对其进行

2017-07-16 22:30:01

Linux下信号的产生与递达

1. 信号的概念   一个信号就是一条消息,它通知进程系统中发生了一个某种类型的事件,它属于软件形式的异常,称为Linux信号,它允许进程和内核中断其他进程。   信号的接收:将信号存在该进程的PCB中。   信号的识别:在PCB中找到存在的信号。 2. 信号的产生   1) 用户在终端按下某些键时,终端驱动程序会发送信号给前台进程,例如Ctrl-C产生SIGINT信号。   2) 硬件

2017-07-15 10:59:01

Linux下多进程多线程的调试

1. Linux下GDB调试常用命令   在调试前明确:在生成源代码的时候加上 -g 选项,开始使用: gdb binFile,退出: ctrl + d 或 quit。下面是调试的常用命令。   list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。   list/l 函数名:列出某个函数的源代码。   r或run:运行程序。   s或step:进行函数调用

2017-07-14 17:45:11

Linux下生产者与消费者模型

1. 概念   有一个或多个生产者生产某种类型的数据,并放在缓冲区里(生产者),有一个消费者从缓冲区中取数据,每次取一项(消费者)。系统保证任何时候只有一个主题可以访问缓存区。所以当生产满时,生产者不会再生产数据;当缓冲区为空时,消费者不会从中移走数据。 接下来解释同步和互斥的概念,然后用代码(链表、环形队列)模拟生产者与消费者的关系。   互斥与同步:假设两个或者更多的进程需要访问一个不可共享

2017-06-15 23:53:33

Linux下的死锁

本文参考《操作系统精髓设计原理》第六章(178~191) 一. 死锁的概念   我们可以把死锁定义为一组相互晶振系统资源或通信的进程间的“永久”阻塞。死锁都会涉及两个或者两个以上进程间对资源的冲突。   一般情况下,如果同一个线程先后两次调用lock,在第二次调用时,由于锁已经被占用,该线程会挂起等待别的线程释放锁,然而锁正是被自己占有的,该线程又被挂起没有机会释放锁,因此就永远处于挂起等待状

2017-06-10 23:29:08

Linux下线程的概念和使用

一. 概念   首先Linux并不存在真正的线程,Linux的线程是使用进程模拟的。当我们需要在一个进程中同时运行多个执行流时,我们并不可以开辟多个进程执行我们的操作(32位机器里每个进程认为它 独享 4G的内存资源),此时便引入了线程,例如当我们既需要下载内容,又需要浏览网页时,此时多线程便起了作用。线程是承担调度的基本单位,一个进程可拥有多个线程,它的执行力度比进程更加细致,线程资源共享。

2017-06-10 11:37:38

文件描述符fd和FILE的关系

1.FILE的内容   FILE在C中作为一个结构体存在结构如下: struct _iobuf { char *_ptr; //缓冲区指针 int _cnt; char *_base; //缓冲区基址 int _flag; //文件读写模式 int _file;

2017-05-08 12:39:28

优化程序性能

本文参考《深入理解计算机系统》中的第五章,本文中有不详细的地方请查看原书。   本文会出现部分汇编代码,尽量注释,以下为可能出现的优化。 1. 两个指针指向同一个位置void twiddle1(int *xp, int *yp) //*xp进行加两次*yp{ *xp += *yp; *xp += *yp;}void twiddle2(int *xp, int *yp

2017-04-25 17:34:45

模拟实现智能指针

智能指针可以用来管理资源,原自构造析构函数(RAII);还可以像原生指针一样使用。本文为模拟实现auto_ptr,scoped_ptr,shared_ptr,下面为这些指针的特点:auto_ptr: 管理权限的转移。scoped_ptr: 防拷贝。shared_ptr:引用计数解决auto_ptr的缺陷。其中shared 自身带有一定缺陷,循环引用,和不可释放数组类,文件类等资

2017-04-17 17:53:04

计算从1加到100不使用循环和条件语句。

解决该问题当然可以使用n个printf或cout,但这也太浪费体力了,但如果不能让编译器自己生成这么多printf或cout,也许可以吧。下面的解决分别从递归,宏函数,类以及模板进行解决。参考链接:http://coolshell.cn/articles/3445.htmlhttp://bbs.csdn.net/topics/360087177以下源代码#pragma once

2017-04-09 21:42:10

查看更多

勋章 我的勋章
    暂无奖章