linux/计算机网络
文章平均质量分 79
了解linux系统的常见命令,熟练掌握gdb的调试技巧,并且了解网络基础知识和网络编程。。。
CTTCassie
玩转C/C++,初始linux
展开
-
进程间通信之消息队列
对于进程我们知道一个进程拥有独立的用户地址空间,在一个进程中的全局变量在另一个进程中是看不到的,那仫进程间是如何通信的呢?在进程与进程间的通信必须要经过内核,在内核中开辟一块缓冲区,其中的一个进程把数据从用户空间拷贝到内核缓冲区,另一个进程则从该内核缓冲区中把数据读走,内核提供的这种机制叫进程间通信(IPC)。在这篇文章中主要提到的是进程间通信的第一种方式-消息队列。 1.什仫是消息队列?原创 2017-03-10 23:16:33 · 1966 阅读 · 1 评论 -
路由表的建立算法和有关的刷新协议
在这篇文章中主要解决的就是路由表的建立和刷新机制,那仫什仫是路由表呢? 路由表就是路由器与其它互联网网络设备上存储的一张二维表,是用来反映网络结构的数据集,是数据在互联网上传输的关键。路由表的功能就是为数据包指明去往某信宿应该采用哪条路径。 一.路由表的结构 在了解了路由表的作用之后,那仫一张基本的路由表由哪些条目组成呢?如下图所示: 1).信宿地址:为目标网原创 2017-03-06 20:55:29 · 7815 阅读 · 3 评论 -
TCP协议学习总结
我们知道在TCP/IP模型中,有时也叫DoD(Department of Defense)模型,TCP/IP简化OSI的七层模型为四层,由下而上分别为:网络接口层,网际层,传输层和应用层。而今天我学习的就是传输层的TCP协议(传输控制协议)。 一.TCP协议简介 TCP是TCP/IP协议栈中的传输层的协议,TCP协议又叫传输控制协议(Transport Control Prot原创 2017-03-05 22:09:58 · 8686 阅读 · 2 评论 -
gdb调试多线程
下文参考以下链接:http://www.cnblogs.com/xuxm2007/archive/2011/04/01/2002162.html首先先介绍多线程调试的基本命令: 1.info threads,显示当前可调试的所有线程。每个线程会有gdb为其分配的ID,后面的操作会用到这个ID。前面带'*'号的是当前正在调试的线程。 2.thread ID,切换当前调试的线程为指定ID的原创 2017-03-03 17:30:48 · 21379 阅读 · 2 评论 -
gdb调试多进程
gdb是linux操作系统中常见的调试工具,在这篇文章中主要介绍gdb调试多进程的几种方法。 其实在Linux系统中并没有对多进程提供直接支持。例如,用gdb调试一个进程,如果该进程fork/vfork了子进程,gdb会继续调试该进程,子进程并不受任何影响。如果我们在子进程的代码处设置断点,子进程会收到SIGTRAP(5号信号,可以在linux系统中使用kill -l查询信号量)并终止,无原创 2017-03-03 15:16:06 · 3864 阅读 · 0 评论 -
读者_写者模型
一.读者_写者模型 我们知道在一些程序中存在读者写者问题,就是对某些资源的访问会存在两种可能的情况:一种就是写操作,写操作是可以独占资源的,也就是具有排他性;另一种情况就是读操作,在读操作中可以有多个资源并发的去访问某种资源,它的访问方式是共享的。这种模型是从对文件的读写操作中总结出的一种模型。 1.在读者和写者的这种模型中,存在3种关系,他们是: 1).读者和读者之间,读原创 2017-02-24 13:23:51 · 1114 阅读 · 0 评论 -
线程安全与不可重入函数
一.什仫是不可重入函数? 要理解什仫是不可重入函数,首先要了解什仫是重入,先假设这样一种情况:如果一个函数被不同的执行流程调用,就有可能在上一次调用还没有完成时再次进入该函数,这就叫重入。假设一下如果满足上述条件的函数具有全局变量或者是静态的局部变量,会出现什仫情况呢?下面来看一个关于全局链表头插的情况: 由上图可知当一个函数访问一个全局链表,就有可能因为重入而造成丢原创 2017-02-24 12:18:11 · 2426 阅读 · 0 评论 -
浅析linux下的条件变量
条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)原创 2017-02-20 15:38:37 · 9072 阅读 · 0 评论 -
文件描述符&文件指针
一.文件描述符(file descriptors 简称fd) 在linux操作系统中打开或者创建一个文件就会获得文件描述符,那仫什仫是文件描述符呢?我们知道在linux下一切皆文件,文件描述符是OS为了高效的管理已经被打开的文件所创建的一个索引,它是一个很小的正整数,所有执行I/O操作的系统调用都是通过文件描述符来实现的。 我们知道一个进程的创建一定会产生对应的原创 2017-01-19 17:43:05 · 2027 阅读 · 0 评论 -
linux中的PCB---task_struct
说起PCB相信学过操作系统的童鞋都知道这是进程控制块,是用来描述进程基本信息的数据结构,今天我就从linux下的task_struct这个类似PCB的概念来理解什仫是PCB?以及PCB存在什仫样的基本信息? 要了解PCB,首先需要了解什仫是进程?一.进程的概念 在之前学过的操作系统课本上是这样描述进程的,进程是程序的一次动态执行的过程,进程=程序+数据+PCB(这样官方的描述真的原创 2017-01-17 15:42:25 · 4665 阅读 · 0 评论 -
linux下的stat命令查看文件系统的时间
文件系统的三个时间> 对于window操作系统相信大家都不陌生,如果我们在window下创建一个文件,window操作系统就会对这个文件产生相应的描述信息,这个文件存在创建时间,修改时间和访问时间.那仫在linux操作系统下新建一个文件是不是也会出现相应的描述信息呢? 答案是肯定的,只是在linux系统下是没有该文件的创建时间的,只有访问时间,修改时间和状态改动时间,具体情况分析原创 2016-12-25 14:33:10 · 2232 阅读 · 0 评论 -
vim的几种模式&快捷键
一.vim的模式 基本上vim可以分为三种模式:命令模式,插入模式和底行模式,其实vim有多种模式,我们只需要掌握这三种即可。 1.命令模式 用vim 打开一个文件刚开始进入的就是命令模式,在这个模式下我们可以控制光标的移动,字符,字或者行的删除,移动复制某段区域,在该模式下可以进入插入模式也可以进入底行模式。 2.插入模式 在原创 2017-01-01 14:05:24 · 11155 阅读 · 0 评论 -
linux下的find命令
find命令 在linux操作系统中,find命令用于在目录文件中搜索文件,并执行指定的操作,也用于辨识文件类型,find命令提供了相当多的查找条件,功能很强大。在不指定查找目录的情况下,find会在对整个系统进行遍历,即使系统中含有网络文件系统,find命令在该文件系统中同样有效。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花原创 2016-12-31 11:31:20 · 884 阅读 · 0 评论 -
linux中实现一个简单的进度条
相信大家都用计算机或者手机下载过视屏或者游戏,那仫对于网速这个概念相信大家都不陌生,而我今天模拟实现的进度条就是来模拟实现类似加载或者拷贝文件时速度的显示。 要了解进度条首先需要了解的是缓冲区的原理,下面先来看一个简单的栗子(以下都是在linux操作系统下): sleep在linux下的时间量级为秒,sleep在window下的时间量级为秒,Sleep在window下的时间量级原创 2016-12-31 21:55:02 · 3385 阅读 · 2 评论