linux
文章平均质量分 80
就是爱编程-都有人重名
编程如水似空气般不可缺失
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解决linux虚拟机无法上网的方法之一
今天分享一下,解决虚拟机无法上网的一种方法。本文以主机为windows,虚拟机为linux为例。说明让虚拟机联网的流程。 在开始解决问题之前,我得先介绍三个重要的东西。 1.网络连接图标:通常在linux虚拟机第一行的自右数,倒数第二个图标。 2.火狐浏览器:通常在linux虚拟机第一行的自左数,顺数第二个图标。 3.网络适配器:通常在linux虚拟机右下原创 2017-04-03 15:44:22 · 71146 阅读 · 5 评论 -
TCP定时器
TCP定时器 今天简单的分享一下,TCP协议栈中的七个定时器。 TCP/IP协议,或称为TCP/IP协议栈,或互联网协议系列,在内核中tcp协议栈有七个类型的定时器。 “连接建立(connection establishment)”定时器:在发送SYN报文段建立一条新连接时启动。如果在75秒内没有收到响应,连接建立将中止。 “重传(retra转载 2017-07-11 15:44:53 · 359 阅读 · 0 评论 -
crond和crontab的简单概念和应用
今天我们来分享一下关于crond和crontab的简单概念和应用。 crond是工具,是linux的一个定时执行的服务项,可以通过crontab 命令添加或者编辑需要定时执行的任务。crontab是一个命令qs,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。因此,cron原创 2017-07-05 15:45:18 · 984 阅读 · 0 评论 -
TCP 服务器三种模式的简单实现
TCP 服务器三种模式的简单实现 今天我们来介绍TCP 服务器的三种模式的实现:单用户服务器,多进程多用户服务器,多线程多用户服务器。要实现一个服务器,不仅要有服务端,还要有客户端,所以本文三种服务器由服务器端代码和客户端这样两块代码构成。 首先介绍单用户服务器的实现步骤,并展示源代码和相应运行实例。服务器端 1>Main函数传参 argc原创 2017-07-14 11:37:55 · 4441 阅读 · 0 评论 -
GDB调试多进程多线程程序
各位好久不见哈!最近有点忙,好久没写博客了。今天我想和大家分享一下,用gdb简单调试多进程和多线程程序的代码和方法。 我们知道gdb是Linux环境下的代码调试工具。使用时,需要在源代码生成时加上-g选项。默认设置下,在调试多进程程序时gdb只会调试主进程。调试的结果会是这样,我以多进程调试来举例: 但是gdb(>V7.0)支持多进程的分别以及同时调试,换句话说原创 2017-06-27 16:59:29 · 361 阅读 · 0 评论 -
单用户UDP服务器的简单实现
单用户UDP服务器的简单实现 今天我们来分享一下单用户UDP服务器的简单实现。 UDP协议是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,所以通过UDP服务器传输的数据不具备可靠性。 其次,说说UDP协议的特点: 1.UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。 2.UDP有不提供数原创 2017-07-15 10:24:48 · 459 阅读 · 0 评论 -
NAT技术的简要概述
今天我们来分享一下NAT技术。 NAT又称网络地址转换,让在专用网内拥有本地IP(私有IP)的主机通过装有NAT软件的路由器连接到因特网上能和外界通信的技术。所有使用本地地址的主机在和外界通信时,在NAT路由器的作用下上将其本地地址转换成全球IP地址,故能和因特网连接进行通信。 NAT原理: 借助于NAT技术,私有(保留)IP地址的"内部"网络通过路由器发原创 2017-07-06 17:40:56 · 3874 阅读 · 0 评论 -
实现进度条——基于c语言和shell脚本
实现进度条——基于c语言和shell脚本 今天分享一下基于c语言和shell脚本的进度条的实现以及运行界面。 进度条即计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间,一般以长方形条状显示。 进度条要求能显示出:处理任务的速度,完成任务的百分比以及用旋转的光标表示任务是否在进行。原创 2017-07-16 11:38:31 · 966 阅读 · 3 评论 -
简述TCP协议的六个标志位和三次握手与四次挥手的过程及原理
简述TCP协议的三次握手与四次挥手的过程及原理 今天,我们来分享一下TCP协议的六个标志位和三次握手与四次挥手的过程及原理。 先介绍一下TCP中的六个控制位, SYN表示建立连接; FIN表示关闭连接; ACK表示响应; PSH表示有 DATA数据传输; RST表示连原创 2017-07-10 11:29:17 · 5377 阅读 · 0 评论 -
实现插入排序和希尔排序——题集(十五)
实现插入排序和希尔排序——题集(十六) 今天分享一下实现插入排序和希尔排序和使用shell脚本实现希尔排序的源代码和运行示例。 实现插入排序的源代码和运行示例。源代码如下:#includeusing namespace std;//实现插入排序void InsertSort(vector& aim){//插入排序 int size=aim.size原创 2017-07-31 22:46:37 · 429 阅读 · 1 评论 -
Linux常见的操作(一) ->常见文件类型, 新建和删除文件或文件夹
今天来分享一下,常见文件类型和Linux系统中新建文件,新建文件夹,删除文件,删除空文件夹,删除非空文件夹。 首先介绍一下,在Linux下,为了方便用户识别,我们会在文件名添上后缀来区分文件类型,下面简要的说一下我知道的几种简单常用的文件类型。后缀名释义.c C脚本.cpp C++脚本.sh shell脚本.py Python脚本.doc word文件....原创 2018-03-30 20:51:41 · 589 阅读 · 0 评论 -
如何实现信号屏蔽
紧接上一篇博客,接着分享一下信号屏蔽的具体内容以及如何实现信号屏蔽。 Linux中常见信号量只有31个,所以进程PCB中表示常见的信号量只用一个字节表示就够了,进程得到了一个信号就是对应的一个bit位由0改变为1。信号被系统发送给一个进程,就是改变PCB中表示信号量的字节中对应的一个bit位。进程收到某一信号,相当于向表示信号量的字节中写入了一个信号量。 关于信号抵原创 2017-06-30 22:09:30 · 3445 阅读 · 0 评论 -
信号相关概念
我记得我在进程间通信的时候说到过一种方式——信号量;终止在linux命令行上正在运行的可执行程序所用的ctrl+c,也属于一种信号(是常见SIGINT信号),所以,今天我想具体分享一下与信号相关的一些概念。 Linux中信号共有64个,常见信号量只有31个,利用kill -l命令就可以用来查看全部信号,如下图所示: 首先从信号的处理的三种方式说起。 1>原创 2017-06-30 21:29:22 · 1489 阅读 · 0 评论 -
Vim简单配置
今天我们来分享一下,linux下被称为编辑之神的vim的简单个性化配置。我们通常把vim的配置文件设置为隐藏文件.vimrc。 关于.vimrc文件的放置,首先我们可以直接放在主根目录下,其次我们也可以放在各自用户的根目录下。注:如果根目录下存在此名称的文件,就不用再touch生成.vimrc. 下面我们简要的说明和示范一下如何配置以及配置后的结果。本文实例,在当前smile原创 2017-04-04 14:55:00 · 1615 阅读 · 0 评论 -
僵尸进程和孤儿进程代码编写及atexit相关验证
今天分享一下僵尸进程和孤儿进程代码编写及atexit相关验证。僵尸进程:子进程结束运行,但父进程依旧运行,还没有接受子进程的运行结果和释放子进程的PCB等资源,此时结束运行的子进程即处于僵尸状态(Z),同时子进程也被称作是僵尸进程。僵尸进程:程序代码及运行结果截图Zombie.c #include #include #include int mai原创 2017-05-03 20:52:42 · 389 阅读 · 0 评论 -
进程通行(IPC)--实现消息队列及验证
今天我们来分享一下进程通行(IPC)-实现消息队列。消息队列由操作系统提供一个链表(也就是说消息队列需要操作系统接口),以链表节点为一个数据块(有类型),基于消息,每条消息有上限且消息的总数也是有限的。与管道通行的区别是,管道通信以字节流为通信单位,消息队列是以有类型的数据块为通信单位。消息队列实现原理:一个进程建立消息队列(本文为serves),另一个进程(本文为client)打原创 2017-05-26 21:28:50 · 722 阅读 · 0 评论 -
进程通信——匿名管道实现和验证
今天我们来分享一下,Linux中关于进程通行中最简单的匿名管道的实现和相关性质的验证。进程通信的原理是:多个进程看到同一份公共资源(文件),能对该资源进行相应操作,不同进程间即可进行通信。一般有操作系统(内核)提供这一公共资源。今天我们利用匿名管道来实现进程通信。首先介绍一下,匿名管道的特点:1.匿名管道只能实现单向通信。2.匿名管道只能实现有血缘关系的进程之间的通信。3.管道原创 2017-05-17 18:09:52 · 405 阅读 · 0 评论 -
进程通信(IPC)——实现信号量
今天我们来分享一下进程通行(IPC)-实现信号量。信号量的本质是计数器,且进程与进程之间都能够看到,所以我们用一个信号量来衡量临界资源,通过计数器限制进程对临界资源进行操作的个数。也就是说信号量是用来保护临界资源的,并且因为信号量是原子的,所以在他能在保护自己的基础下去保护临界资源。本文我们简单的用父子进程来展示二元信号量的作用,本文说用的二元信号量(初始为1,占用为0)可以起到互斥功能(原创 2017-05-29 20:56:53 · 326 阅读 · 0 评论 -
进程通信(IPC)——实现共享内存
今天分享一下,进程通信(IPC)——实现共享内存。 我们知道进程间通信的本质是让不同的进程看到同一内存。这之前我们用了不同的方式(管道,消息队列,信号量等等)让进程间能够通信,现在我们尝试着在共享内存中开辟一段内存,即共享内存,让需要通信的两个进程通过页表映射到共享内存上,从而各自得到一个能映射到这段共享内存的虚拟地址的指针,进程间即可通过含有虚拟地址的指针对共享内存进行相应读写操原创 2017-06-01 22:25:08 · 677 阅读 · 0 评论 -
进程通信—命名管道
今天和大家分享一下进程通信—命名管道。命名管道和匿名管道的性质基本一致(上篇博客有详细描述,不在此再做说明),区别是命名管道可满足任意两个进程之间的通信。 代码运行截图: Serve.c client.c Makefile运行界面如下: 元代码如下:namepipe.h #include #include #include #inc原创 2017-05-19 19:41:09 · 391 阅读 · 0 评论 -
线程同步与互斥——实现互斥锁
今天我们来分享一下,线程同步与互斥——互斥锁的实现。 多个线程同时访问共享数据时可能会产生冲突,造成程序运行结果不是我们所预期的结果。 不产生冲突的多线程访问情况,代码和截图如下: 产生冲突的多线程访问情况,代码和截图如下: 注:每运行一次,结果都可能会不同。 由于多线程访问共享数据时可能会产生冲突,不能保证线程之间的同步与互斥。所以为了保证多线原创 2017-06-18 16:57:56 · 757 阅读 · 0 评论 -
介绍并实现简单的守护进程
今天来分享一下Linux下,由守护进程实现的大多数服务器,并能够完成许多系统任务。 守护进程是一种运行在后台的进程,又称精灵进程。它独立于控制终端并且周期的实现执行某种任务或等待处理某些发生的事件,且不受用户登陆和注销的影响(它们不与任何终端关联),它们每天24小时不停的运行。一般情况下,Linux系统的守护进程以.d结尾。 可用ps axj查看系统中的进程,今天我就不演示了,TP原创 2017-06-28 15:46:08 · 499 阅读 · 0 评论 -
子进程异步等待
今天来和大家分享一下子进程异步等待的方式。 我记得之前和大家分享过僵尸进程和孤儿进程,利用wait 和waitpid函数,父进程可以阻塞等待子进程结束,也可以非阻塞地查询是否有子进程已经结束正等待清理(也就是轮询的⽅式)。 采阻塞式等待,父进程阻塞了就不能处理自己的工作;采用非阻塞式等待,父进程在处理自己的工作时还可以时不时地轮询一下,查看是否有已经结束工作的子进程等待清理,程原创 2017-06-29 14:02:40 · 359 阅读 · 0 评论 -
线程
今天我们来分享一下,Linux下的线程的简单概念和相关实现及验证。 首先必须明确的一点是Linux下没有真正的线程,Linux下的线程是由进程来模拟的,因此Linux下的线程也被称为轻量级进程。 进程(PCB):承担分配资源的基本实体。 线程(TCB):调度的基本单位。而且线程是在进程内部运行的执行分支(执行流),线程其本质是在进程的地址空间上运行。原创 2017-06-09 09:12:53 · 253 阅读 · 0 评论 -
线程安全和可重入函数
线程安全基于多线程程序(多执行流),单线程程序几乎不存在线程安全问题。 简单来说,在运行环境一致的情况下,多次运行同一个多线程程序时,所有线程结果和单线程运行得到的结果一致时,则可以说该程序的线程是安全的。反之,则为线程不安全。 引起线程安全问题的原因: 通常都是由全局变量及静态变量的。 若每个线程中对全局变量、静态变量只有读操作,而无写操作原创 2017-06-30 11:56:57 · 215 阅读 · 0 评论 -
python: ImportError: cannot import name Counter 的解决方式 以及查看python版本
今天博主主要分享一下 Linux系统下 Python出现 ImportError: cannot import name Counter 的解决方式,和博主在Linux下查看Python版本号的方式和退出方式。 今天在Linux下码代码的时候发现了一个奇怪的问题,使用collections模块的函数时,代码如下:from collections import Counter...原创 2018-04-24 18:18:48 · 12644 阅读 · 0 评论
分享