C++中的友元

一个类的私有成员除了它的成员函数之外是不能被其他类或函数所访问的。为了能构使其他类或函数能访问类的私有成员,我们可以使其他类或函数成为该类的友元。如果想把一个类或函数作为该类的友元,则只需在在该类或函数的声明前加个friend,注意带有friend的声明必须在类的内部1.友元函数如前言所述,要想将...

2015-08-31 21:03:25

阅读数:508

评论数:0

理解编译器在编译过程中做了什么

今年开了操作系统课,课上老师提了一个问题:从一个保存程序代码的文本文件到可执行的程序,编译器做了啥?由于之前买过<<深入了解计算机系统>>这本书,刚买来时受热就翻了其中一部分章节,其中就有讲到上述所问的讲解,索性就参考其上的讲解写出来我会以一个hello.c的c程序贯穿整个...

2015-08-31 14:59:59

阅读数:2200

评论数:0

C++标准库类型string

string类表示可变长字符序列,包含在头文件string中,作为标准库的一部分string定义在std命名空间中1.初始化string对象std::string s1;//默认初始化s1是个空字符 std::string s2 = s1;//s2是s1的副本 std::string s3 = &...

2015-08-30 17:20:49

阅读数:918

评论数:0

Linux下netstat和vmstat以及ifstat的使用

1.netstatnetstat是一个功能很强大的网络信息统计工具。它可以打印本地网卡接口上的全部连接,路由表信息,网卡接口信息的等。一般情况下我们大量用到的是TCP连接及其状态信息,因为我们如果要获得路由表信息和网卡接口信息,我们可以使用输出内容更丰富的route和ifconfig命令netst...

2015-08-30 15:04:11

阅读数:2464

评论数:0

tcpdump的基本参数说明

虽然像Wireshark(易于掌握)等图形化的抓包工具已经被我们大量使用,但是有的时候tcpdump还是能派上用场,所以我们依然要掌握一些基本的用法和参数1.tcpdump的参数说明 参数 说明 -n 使用IP地址表示主机,而不是主机名;使用数字表示端口而不是服务名称 -i ...

2015-08-30 12:10:15

阅读数:1044

评论数:0

Linux下nc的参数详解

想必接触linux下服务器编程的人一定用过一个一个功能强大且有着瑞士军刀美誉的短小精悍的命令nc吧。我们既可以用nc构建出服务器也可以用作客户端,而且我们可以通过它的各种参数来精准的控制一些传输与连接的细节,从而使它变得异常强大。nc命令的参数 参数 作用 -i 设置数据报传送时间间...

2015-08-30 11:11:09

阅读数:2331

评论数:0

gdb调试多线程的简单命令

由于平时的编程当中经常会用到多线程,我想接触过多线程编程的人应该都会清楚多线程如果出了错,调起bug来是有多么麻烦,应为你某个地方出错了,有可能并不是这里的问题而是线程执行到这就切换到其他线程,而出错的是其他线程,我以前使用的办法是给某个线程sleep然后让内核自己调度去执行其他线程。很明显这种方...

2015-08-21 21:20:42

阅读数:1764

评论数:0

linux下select,poll,epoll的使用与重点分析

好久没用I/O复用了,感觉差不多都快忘完了,记得当初刚学I/O复用的时候花了好多时间,但是由于那会不太爱写博客,导致花很多时间搞明白的东西,依然很容易忘记。俗话说眼过千遍不如手过一遍,的确,在以后的学习中,无论知识的难易亦或是重要程度如何,我都会尽量义博客的形式记录下来,这样即能用博客来督促自己学...

2015-08-12 10:42:35

阅读数:1114

评论数:0

Linux下TCP/IP协议栈的简单脉络分析

最近在写网络编程方面的一些东西,然后遇到了关于传输上的小问题。由于之前有简单的看过一些TCP/IP详解的一些东西,所以索性就找了本《追踪LinuxTCP/IP代码运行》的书看了一上午,结果发现初次接触这些内核方面的东西,收获甚微。于是又在网上找相关类的大神博客,拿来拜读,虽然依然看的不是太明白,吸...

2015-08-11 22:13:17

阅读数:4473

评论数:0

Linux下文件的阻塞与非阻塞对部分系统调用的影响

1.基本概念所谓的阻塞,即内核在对文件操作I/O系统调用时,如果条件不满足(可能需要产生I/O),则内核会将该进程挂起。非阻塞则是发现条件不满足就会立即返回。此外需要注意的是非阻塞并不是轮询,不然就和阻塞没多大区别了,它只是调用不成功就直接返回了,不会在去看啥时候会满足条件,而是有你自己去选择接下...

2015-08-10 11:25:02

阅读数:3354

评论数:0

Linux下线程相关知识总结

1.线程的基本介绍(1)线程的概述线程与进程类似,也允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程,同一程序中的所有线程共享同一份全局内存区域,线程之间没有真正意义的等级之分。同一个进程中的线程可以并发执行,如果处理器是多核的话线程也可以并行执行,如果一个线程因为等待I/O操作而...

2015-08-09 21:03:07

阅读数:1024

评论数:0

TCP/IP详解学习笔记--TCP的坚持和保活定时器

TCP的坚持定时器1.基本概念TCP的接收方指名希望从发送方接收的数据字节(窗口大小)来进行流量控制,如果窗口大小为0,那么放送方就会阻止发送数据,直到接收方发来一个已跟新窗口大小的ACK为止,那么如果接收方发送的这个ACK中途丢失了呢(这种可能性是有的)?此时发送方收不到信息,就默认窗口大小还为...

2015-08-08 15:02:22

阅读数:1235

评论数:1

TCP/IP详解学习笔记--TCP的超时与重传

1.基本概念TCP之所以可以安全的将数据在传输中的安全性,是因为它每次给对方发送数据,都会等待对方给个确认,当长时间收不到这个确认,发送端就会重发这个数据。2.超时时间的测量要测超时时间,TCP必须要发送一个特别序号的字节和接收包含该字节的确认之间的RTT,但是,确认本身就是有延时的,所以一般有一...

2015-08-08 12:33:34

阅读数:1311

评论数:2

TCP/IP详解学习笔记--TCP数据流

1.TCP的交互数据流(1)基本概念所谓交互数据流,其对TCP而言,就是他们所产生的大多数的TCP报文段中所包含的数据不超过10个字节,例如聊天等telnet的软件的TCP数据流就属于TCP交互数据流(2)经受时延的确认TCP收到数据时并不会马上发送数据,相反它会推迟数据的发送,以便让ack和该方...

2015-08-07 23:47:36

阅读数:1505

评论数:1

TCP/IP详解学习笔记--TCP连接的建立与终止

1.基本概念由于TCP是一个面向连接的协议,无论在哪一方发送数据之前,都必须先在双方之间建立连接,接下来我们就讨论建立连接的具体过程2.建立TCP连接如下图所示: 1.首先请求端发送一个序列号为1(表明该方的起始序列号为1)的SYN段,此时由于连接还未建立成功,所以携带的数据为0,并前发送端还告...

2015-08-07 16:46:21

阅读数:892

评论数:0

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