Linux
poison_biti
这个作者很懒,什么都没留下…
展开
-
进度条——fflush(stdout)理解使用
运行结果展示“test.c”#include#includevoid proc(){ int i = 0; char proc_buf[102]; const char* latle = "|/-\\"; memset(proc_buf,'\0',sizeof(proc_buf)); while(i <= 100) { printf("[%-100s][原创 2016-09-19 14:23:13 · 2868 阅读 · 0 评论 -
进程和线程的区别
进程: (1)进程是系统进行分配的最小单位,进程创建的时候就拥有的自己独立的进程地址空间。 (2)在进程中创建线程,一个进程中至少有一个线程。线程: (1)线程是比进程还要小的能够独立运行的执行体,线程是最小的执行体,是CPU调度的最小单位。 (2)线程自己不拥有系统资源,他和进程中其他的线程共同享有进程所拥有的所有资源,他只拥有运行中不原创 2017-07-17 20:19:38 · 362 阅读 · 0 评论 -
线程的同步与互斥
什么是临界资源? 多个进程不能同时使用的资源叫做临界资源。什么是临界区? 每个线程访问临界资源的那段代码称作临界区操作系统在引入线程的并发性了以后,随即带来的就是资源共享和竞争的问题(因为线程共享进程所拥有的所有资源)。 举个例子,比如说,现在有两个线程(线程A和线程B),他们都需要用到打印机,如果这个打印机的资源不加以限制,那么在线程A打印还没有结束的时候线程B原创 2017-07-18 10:54:13 · 411 阅读 · 0 评论 -
linux下查看内存使用情况的命令
(1)/proc/meminfo /proc/meminfo 文件列出了内存使用情况的总的概况(2)free free快速查看内存的使用状况,是对/proc/meminfo收集到的信息的一个概述 (3)top top对系统中的内存使用情况进行实时监控。(4)pmap pmap原创 2017-07-18 13:09:35 · 1389 阅读 · 0 评论 -
http的长连接和短连接
http协议和TCP/IP协议的关系: HTTP的长连接和短连接实际上就是TCP的长连接和短连接。HTTP属于应用层的协议,传输层使用TCP协议,网络层使用IP协议。IP协议的特点: IP协议主要解决网络路由和寻址的问题。TCP协议的特点: TCP保证数据可靠到达,不会出现丢包问题,并且接收端收到的所有包和发送端发出的所有包顺序一致,TC原创 2017-07-31 14:13:01 · 512 阅读 · 0 评论 -
cookie和session的认知
Cookie概念: (1)具体来说cookie机制采用的是在客户端保持状态的方案。它是在用户端的会话状态的存贮机制,他需要用户打开客户端的cookie支持。 (2)cookie是指某些网站为了辨识用户身份,进行session跟踪而存储在用户本地终端的一些数据(通常经过加密),并随每一个请求发送至同一个服务器。 网络服务器用HTTP头向客户端发送cookies,在原创 2017-07-23 10:04:23 · 467 阅读 · 0 评论 -
对称加密和非对称加密的详细说明
为什么要进行数据加密: 随着人类社会逐渐步入信息时代,信息安全也越来越受到了关注。对计算机而言,信息表现为各种各样的数据,是否采用了适当的方法对数据进行加密,已成为保障数据安全的首要方法。为了保密,一般在网络上传输的重要数据文件都可以对其进行加密,但数据加密也不一定是为了在网络间传输文件,而是为了保证机密文件即使失窃后也不泄漏其中的重要信息。数据加密的作用:原创 2017-07-23 11:38:56 · 4220 阅读 · 0 评论 -
线程同步机制(互斥量,读写锁,自旋锁,条件变量,屏障)
先知: (1)线程是由进程创建而来,是cpu调度的最小单位。 (2)每个进程都有自己独立的地址空间,而进程中的多个线程共用进程的资源,他们只有自己独立的栈资源。线程同步: 当多个控制线程共享相同的内存时,需要确保每个进程看到一致的数据视图。同一个数据如果被两个及以上的线程进行同时访问操作的时候,有可能就会造成数据不一致的现象。为了解决这个问题,线程不原创 2017-08-04 10:22:36 · 3268 阅读 · 1 评论 -
linux下作业前后台转换
fg %作业号 将后台程序放置前台运行bg %作业号 将前台程序放置后台运行原创 2017-08-19 15:38:01 · 889 阅读 · 0 评论 -
grep -- 文本编辑器
grep是一种很强大的文本编辑器,他可以支持正则匹配,也可以将匹配的行统计出来。命令: grep [选项] [--color] '搜索字符串' 文件名选项:-E 支持扩展正则匹配 匹配一个文件中的电话号码选项: -c 统计符合条件的字符串出现的次数选项: -v 显示没有匹配到“搜索字符串”内原创 2017-08-20 14:56:05 · 464 阅读 · 0 评论 -
sed -- 流式编辑器
sed是什么: sed意为流式编辑器。也就是将前一个程序的输出引入sed的输入经过一系列的编辑命令转换成另一种格式输出。 sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后, 把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重原创 2017-08-20 15:11:17 · 733 阅读 · 0 评论 -
cut --- 文本剪切工具
定义 正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut是以每一行为一个处理对象的,这种机制和sed是一样的。 cut命令可以从一个文本文件或文本流中提取文本列命令格式 cut option 范围 文本option: -b:按照字节截取。 -c:按照字符截取。 -d:指定原创 2017-08-20 15:25:48 · 1044 阅读 · 0 评论 -
sort -- 文本排序工具
定义: sort将文件的每一行作为一个单位,相互比较,比较的原则是从首字符向后,依次按ASCII码进行比较命令: sort 【选项】 【文本】选项: 默认:没有选项默认按照ASCII码进行比较(升序) -r:默认是升序,加-r选项变为降序 -u:去除重复行 -o:sort默认将结果输出到标准输出,所以要原创 2017-08-20 15:28:10 · 1386 阅读 · 0 评论 -
uniq -- 文本去重工具
定义: uniq这个命令用于读取输入文件,并比较相邻的行(注意:比较的是相邻的行)。在正常情况下,第二个及以后更多的重复的行将被删除。行比较是根据所用字符集的排序序列进行的。命令格式: uniq option 文件option: -c:显示输出中,在每行行首加上本行在文件中出现的次数(注意是连续出现的行)。 -d:只显示重复的原创 2017-08-20 15:29:19 · 1286 阅读 · 0 评论 -
为什么要将线程设置成分离状态
可结合线程和可分离线程的区别 在任意一个时间点上,一个线程是可结合的,或者是可分离的。一个可结合的线程是可以被其他进程回收资源或者杀死的,在其他线程被回收之前,他的存储器资源(如栈)是不会被回收的。一个可分离的线程是不可以被其他线程回收资源或者杀死的,他的存储器资源在他终止的时候可以由系统自动释放。创建线程后的默认状态 在一个进程中创建线程,默认的状态是可结合的原创 2017-07-17 19:46:17 · 3962 阅读 · 3 评论 -
grep工具的使用
grep是一种很强大的文本编辑器,他可以支持正则匹配,也可以将匹配的行统计出来。命令: grep [选项] [--color] '搜索字符串' 文件名选项:-E 支持扩展正则匹配 匹配一个文件中的电话号码选项: -c 统计符合条件的字符串出现的次数选项: -v 显示没有匹配到“搜索字符串”内容的那一行 如图:显示的原创 2017-07-21 08:02:11 · 1409 阅读 · 0 评论 -
IO多路转接之select、poll、epoll
IO多路转接之select select系统调用的用途:在一段指定的时间内,监听用户感兴趣的文件描述符上的可读,可写,异常时间。 select函数原型: int select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* execptfds, struct timeval* timeout);原创 2017-07-20 15:05:59 · 468 阅读 · 0 评论 -
进程——pid_fork
process ID。如果说程序是静态的话,那么进程就是活动的。进程是程序在某个数据集上运行的过程,而PID就是活动进程的标识。也就说只有程序运行了,才产生进程。当然在进程中还包含线程,我们程序中的main函数就是主线程,一般程序中如果没有再定义其他线程的话,那就是单线程的。 PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收原创 2016-09-21 16:23:15 · 640 阅读 · 0 评论 -
关于死锁
什么是死锁?死锁是指两个或两个以上的进程(线程)在执行过程中,因为竞争资源而形成一种相互等待的现象,而是没有外力的作用的话,他们将无法继续推进下去。例如,交叉持锁死锁的状态,如图死锁产生的4个必要的条件(1)互斥条件:某一个时刻一个资源只允许一个进程(线程)所占有。(2)请求和保持条件:进程(线程)在某一时刻至少拥有一个资源,在申请其他资源的时候,如果其原创 2017-07-01 11:33:17 · 696 阅读 · 0 评论 -
Linux虚拟地址空间如何分布?
Linux的虚拟内存管理的几个基础概念(1)每个进程都有自己独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址。(2)虚拟地址通过页表的映射,获得真正的物理地址。(3)如果虚拟地址对应的物理地址并不存在,则发生缺页中断,真正分配物理地址,并且同时更新进程中页表信息。虚拟地址的空间分布Linux中采用虚拟地址空间,大大增加了进程的寻址空间。原创 2017-07-01 12:30:08 · 1011 阅读 · 0 评论 -
创建新进程——fork函数
fork函数原型#includepid_t fork(void);关于fork的了解一个现有的进程可以调用fork函数创建一个新的进程。由fork创建的新进程被称为子进程。关于fork的返回值fork函数被调用一次,但是它的返回值有两个。子进程的返回值为0,父进程的返回值则是新创建的子进程的ID。fork函数创建子进程之后父子进程继续执行fork调原创 2017-07-01 23:21:31 · 882 阅读 · 0 评论 -
了解dup和dup2函数
描述:dup和dup2都可用来复制一个现有的文件描述符函数原型:通俗理解:(假定返回fd2) dup(fd) == dup(fd, fd2)相当于fd2指向fd所指向的新的文件描述符-->旧的文件描述符打开文件的内核数据结构:代码图解:运行结果如下:原创 2017-07-04 21:22:24 · 614 阅读 · 0 评论 -
关于网络层你了解多少
网络层的设计思路:网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务。网络层不提供服务质量的承诺。由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做的比较简单,而且相对价格低廉。采用这种设计思路的好处:网络的造价大大降低,运行方式灵活,能够适应多种应用网际协议IP:网际协议IP是TCP/IP体系中两个最重要的协议之一与I原创 2017-07-04 23:22:16 · 686 阅读 · 0 评论 -
网络中是通过硬件地址找到目的主机的,那为什么还要有IP地址呢?
计算机网络这本书是这样说的:这是因为全世界存在着各式各样的网络,他们使用不同的硬件地址。要使这些异构的网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此由用户或用户主机来完成这个任务工作是几乎不可能的。他们之间的通信就像连接在同一个网络上那样简单方便,因为ARP的复杂过程都是计算机软件自动进行的,对用户来说是看不见这种调用的。所以,在虚拟的IP网络上用IP地址进行通信给广大的计算机用户原创 2017-07-04 23:43:54 · 6657 阅读 · 0 评论 -
运输层
一、进程之间的通信从通信和信息处理的角度看,运输层向他上面的应用层提供通信服务,他属于面向通信部分的最高层,同时也是用户功能的最低层。我们知道,IP协议能够把源主机A发送出去的分组按照首部的目标地址交到目的主机B,那么,为什么还需要运输层?因为从IP层来说,通信的两端是两个主机。而进程间的通信,说的是一个主机的一个进程和另一个主机的特定进程在交换数据。严格来说,两个主机进行的通信就是两个主机的原创 2017-06-26 22:14:50 · 1128 阅读 · 0 评论 -
针对死链接占用资源的情况的解决方法
TCP连接中可能由于网络的问题导致客户端断开连接,但是服务器还存在和他的连接,针对死连接占用资源的情况,如何消除这些占有资源的死连接。 如果客户端因为网络原因或者崩溃等许多原因断开了与服务端的连接,然而服务端却不知道客户端已经断开了连接并等待客户端给他发送数据占用着系统资源,我们称这样的情况为“死连接”。 在TCP连接通过三次握手连接上了以后,就会服务端就会启动保活计时器,并且服务端每原创 2017-07-14 19:06:02 · 1250 阅读 · 0 评论 -
Linux中的软链接和硬链接
概念: 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名原创 2017-07-14 19:11:24 · 723 阅读 · 0 评论 -
运输层——TCP协议
一、TCP协议概述TCP协议——传输控制协议,可靠性连接协议。使用于一对一的可靠性传输数据的应用,比如打电话,电子邮件等等,基于http协议的web服务器,底层用的就是TCP协议,可见TCP协议的重要性。二、TCP的主要特点a、TCP协议是面向连接的运输层协议。应用层在TCP连接之前必须建立TCP连接(三次握手),在传输完数据后要释放连接(四次挥手)。b、TCP协议针对一对原创 2017-06-27 01:39:01 · 1508 阅读 · 0 评论 -
运输层——UDP协议
一、UDP概述UDP协议——用户数据报协议。UDP只在IP的数据报服务上增加了很少的特点,那就是复用,分用功能还有差错检测的功能二、UDP的功能a、UDP是无连接的。由于发送数据前不需要建立连接,发送数据完成之后也不需要释放连接,因此减少了开销和发送数据的时延。b、UDP使用尽最大努力交付。因为不保证可靠交付,因此主机也不需要维持复杂的连接状况表。c、UDP是面向报文的原创 2017-06-26 23:42:51 · 1306 阅读 · 0 评论 -
五种IO模型
五种IO模型 (1)阻塞IO (2)非阻塞IO (3)信号驱动 (4)IO多路复用 (5)异步IOIO分两步 (1)等待数据 (2)数据搬迁 阻塞IO 在数据准备好前,什么事情都不做,阻塞在那里一直等待 非阻塞IO 需要不停的轮询,询问数据是原创 2017-07-20 11:21:45 · 370 阅读 · 0 评论 -
awk -- 文本处理工具
什么是awk awk也是文本处理工具,与sed相比,awk不仅能以行为单位处理文件,还可以以列为单位处理文件。awk的缺省行分隔符是"\n",缺省列分隔符是空格或tab,但是行分隔符和列分隔符都是可以自定义。awk命令格式awk option '编辑命令' file1 file2 ...awk option -f 编辑脚本 file1 file2 ...awk处理原创 2017-08-20 15:20:46 · 404 阅读 · 0 评论