自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 标准IO

一、文件I/O和标准I/O二、标准I/O2.1 错误报告2.2 流和FILE结构2.2.1 简述2.2.2 打开流2.2.3 进程启动自动打开2.2.4 FILE结构2.3 缓冲区2.3.1 简述2.3.2 简单总结2.3.3 更改缓冲类型2.3.4 不同的缓冲类型读写验证例子12.3.5 多进程与缓冲2.4 标准I/O函数2.4.1 简述2.4...

2018-03-09 13:54:51 4987 2

原创 阻塞/非阻塞、同步/异步IO

一、阻塞和非阻塞二、同步/异步内核缓冲区延迟写写同步函数fflush()与fsync()三、接口函数3.1 read/write3.2 fcntl:改变已打开文件的属性(只需提供fd即可)附1:进程的不同状态一、阻塞和非阻塞若对文件的一次I/O系统调用,读操作时无数据或写数据时可用空间不够,则阻塞模式下即会阻塞该进程,非阻塞模式下返回...

2018-03-09 13:50:03 720

原创 IO多路复用

I/O多路复用一、I/O多路复用技术二、select、poll、epoll1、select2、poll3、select和poll总结4、epoll5、select、poll和epoll区别与总结一个从socket中读取数据的代码:while( (n = read(socketfd, buf, BUFSIZE) ) >0) if( wr...

2018-03-09 13:47:05 385

原创 文件描述符标志、文件状态标志

一、文件描述符标志FD_CLOSEEXEC带来的安全问题二、文件状态标志文件状态标志分类三、打开文件的内核数据结构图四、接口函数opendup/dup2:复制一个现有的文件描述符fcntl:改变已打开文件的属性(只需提供fd即可)一、文件描述符标志每个进程为所有打开的文件维护对应的fd flag。当前只定义了一个文件描述符标志:F...

2018-03-09 13:39:50 6734 1

原创 socket - 描述符就绪条件

描述符就绪条件一、满足下列四个条件中的任何一个时,一个套接字准备好读。二、下列四个条件中的任何一个满足时,一个套接字准备好写。附注:1、套接字接收区缓存(用于读)和发送区缓存(用于写):2、接收缓存区低水位标记(用于读)和发送缓存区低水位标记(用于写):描述符就绪条件我们一直在讨论等待某个描述符准备好I/O(读或写)或等待其上发生一个待处理的异...

2018-03-09 13:34:46 1209 1

原创 TCP/IP协议及网络编程基础

1、TCP/IP2、什么是socket2.1、表示网络中的进程2.2、通过socket完成通信2.3、TCP、UDP(面向连接和无连接)TCP 在 IP 之上的扩展UDP 在 IP 之上的扩展TCP 和 UDP 的类比3、socket的基本操作3.1、socket()函数3.2、bind()函数网络字节序与主机字节序3.3、listen()、connect...

2018-03-09 13:31:03 5872 1

原创 HTTP基础

一、基础概念1.1 Web基础1.2 URL1.2.1 URL格式1.3 请求和响应报文1.3.1 请求报文1.3.2 响应报文二、HTTP 方法2.1 GET:获取资源2.2 POST:传输实体主体数据2.3 HEAD:获取报文首部2.4 PUT:上传文件2.5 DELETE:删除文件2.6 OPTIONS:查询支持的方法2.7 RACE:追踪路径...

2018-03-09 13:15:06 567

原创 CGI

一、CGI 概述二、Web 服务器与 CGI 程序交互1、处理步骤2、环境变量三、GET 与 POST1、GET 方法2、POST 方法3、GET 与 POST 的区别四、CGI 实现1、从服务器获取数据2、URL 编码3、CGI 数据输出五、CGI中的信号量和文件锁六、设置HTTP服务器以兼容CGI七、关于CGI的C语言库——cgihtml八、...

2018-03-09 13:05:49 386

原创 SQL

数据库基础数据库:是一个“结构化的数据”的集合。SQL:结构化查询语言(Structured Query Language)。SQL是专门用于访问数据库的标准化语言。SQL包括三部分:数据定义语言(DDL):包含定义数据库及其对象的语句,例如表,视图,触发器,存储过程等,DDL主要用在定义或改变表的结构、数据类型,表之间的链接和约束等初始化工作上。主要有CREATE、ALTER、DROP等语句。

2017-12-21 18:50:03 313

原创 线程池

线程池基本原理传统服务器结构中:常有一个总的监听线程监听有没有新的用户连接服务器,每当有一个新的用户进入,服务器就开启一个新的线程用来处理这个用户的数据包。这个线程只服务于这个用户,当这个用户与服务器端关闭连接以后,服务器端销毁这个线程。缺点:然而频繁地开辟与销毁线程极大地占用了系统的CPU资源,同时更容易造成死锁。而且在大量用户的情况下,系统为了开辟和销毁线程将浪费大量的时间和资源。因此使用线程...

2017-11-30 20:12:20 158

转载 多线程与信号

参考地址:https://www.cnblogs.com/coding-my-life/p/4782529.html(很大帮助)http://blog.csdn.net/zhangfulin_hwatop/article/details/8567490https://www.cnblogs.com/clover-toeic/p/4126594.html类UNIX信号以前是专为进程设计的,它比线程的...

2017-11-10 10:45:05 922

转载 Linux信号机制

【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等。最后给了几个简单的应用实例。1  信号本质软中断信号(signal,简称为信号)用来通知进程

2017-10-29 20:42:41 269

原创 Ubuntu安装软件及遇到问题解决

Ubuntu初始软件安装及卸载1、Vim安装:sudo apt-get install vim2、搜狗输入法http://www.linuxidc.com/Linux/2017-10/147317.htm3、Unrar解压rar文件安装:sudo apt-get install unrar卸载:sudo apt-get remove unrar4、Google Chromehttp://www.l...

2017-10-29 13:41:58 1099

原创 VitualBox中Ubuntu的共享粘贴板、拖放和共享文件夹

一、安装增强功能包VitualBox的增强功能包包含设备驱动程序和系统应用程序,是使鼠标可以在真实机与虚拟机之间自由穿梭(无缝窗口)、自动根据VirtualBox窗口大小改变显示尺寸,共享粘贴板、拖放、共享文件夹,使用USB等功能的工具。VirtualBox增强功能包是一个光盘映像文件(文件名为vboxguestadditions.iso)。因此,实现简单功能直接安装增强功能包即可。1、首先在虚拟...

2017-10-29 11:30:38 5829

原创 Linux脚本——复制特定文件到特定文件夹

1、复制指定目录下的全部文件到另一个目录中直接 cp -r复制 该目录文件 即可。linux下进行复制的命令为cp。 假设复制源目录 为 sour ,目标目录为。即cp -r sour dir。怎样才能将sour下所有文件复制到dir下呢?如果dir目录不存在,则可以直接使用 cp -r sour dir 即可。如果dir目录已存在(空或有其他文件都行),则需要使用 c

2017-10-18 19:24:01 54480 2

原创 C - 动态内存分配

一、总体概括在《进程地址空间》:http://blog.csdn.net/kyang_823/article/details/78109448中,已经学会了进程地址空间及内存分配方式:堆段、栈段、数据段。动态分配即是在堆段中分配内存:在分配中完全由程序员进行申请多大内存和内存的free释放,动态内存分配的生存期完全由程序员决定,也是程序员唯一能自由分配的内存区,使用非常灵活,使用的好坏直接决定系统...

2017-10-08 12:21:35 509

原创 fork+for循环

fork_for.c#include <sys/types.h>#include <unistd.h>#include <stdio.h>int main(){ pid_t pid; printf("before fork --> pid=%d ppid=%d\n\n",getpid(),getppid()); for(int i=1;i&...

2017-09-28 12:06:19 1228

原创 进程地址空间、程序启动、函数调用

进程地址空间操作系统在管理内存时,每个进程都有一个独立的进程地址空间,这个进程地址空间的地址为虚拟地址,对于32位操作系统,该虚拟地址空间为2^32=4GB。进程在执行的时候,看到和使用的内存地址都是虚拟地址,而操作系统通过MMU部件将进程使用的虚拟地址转

2017-09-27 09:40:44 880

原创 传值、传指针与传引用

概念指针:指针本质上就是一个变量,是一个存放其他变量地址的变量,在逻辑上是独立的,和普通的变量没什么区别。就内存的分布来说,指针变量和任何普通变量在内存中存放是没有任何区别的,无非指针变量内部存放的是其他变量的地址而已。指针变量的特殊之处在于指针变量的内容(即值)为其他变量的地址,同时指针的初始化(以地址初始化)和解引用等不同的操作方式而已。引用:引用是一个别名,它在逻辑上不是独立的,它的存在具有...

2017-09-20 16:29:22 1022

转载 配置环境变量

三、检验环境变量配置是否成功在cmd中执行1echo %PATH%会显示当前这个窗口所用的环境变量PATH,用来检验是否添加成功如果Python 的路径不在其中的话1set PATH=%PATH%;C:\Python33不过,这样你关闭这个

2017-09-17 12:43:33 317

转载 http常用语法

转载自:http://blog.csdn.net/luckyzhoustar/article/details/34497947简介  HTML(Hyper Text Mark-up Language超文本标记语言):不是编程语言,而是一种描述性的标记语言,用于描述网页中内容的显示方式,比如文字以什么颜色、大小来显示等,这些都是利用Html标记来实现。 H

2017-09-15 22:57:22 1381

原创 Jinja2

概述一个模板其实就是一个普通的文本文件。它可以被设计为任何文本格式(HTML,XML,CSV等等)。它也不需要确定的扩展名,不过一般我们都会 用’.html’或’.xml’ 模板语法的大量灵感来自于 Django 和 Python 。模板包含 变量 或 表达式 ,这两者在模板求值的时候会被替换为值。模板中 还有标签,控制模板的逻辑。变量可以传递python的变量给模板,用来替换其在模板中的“变

2017-09-12 23:05:18 312

转载 Cookie/Session机制详解

转载自:http://blog.csdn.net/fangaoxin/article/details/6952954/会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。——Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

2017-09-09 20:24:29 167

转载 Python基本语法

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。缩进Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。缩进成为了语法的一部分。缩进规则:用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字———增加缩进表示

2017-09-09 17:11:41 274

原创 pycharm快捷键

Alt+Up、Alt+Down:方法之间快速切换Ctrl+Shift+F7:当前文件中选中变量高亮Shift + Enter:另起一行Ctrl + Alt + L:代码格式化Ctrl + / :行注释/取消行注释Ctrl + Shift + / :块注释

2017-09-05 15:17:48 186

原创 Python初级项目记

Note:碰到问题先Google、百度、专门网站搜索自己解决,实在想不通再请教、发帖(可以直接从过程中更针对问题,而不是科普)。分布式版本控制系统?GitHub?安装Python2.7  安装pycharm  PIP安装request

2017-09-05 10:08:41 381

原创 操作系统之进程与线程6——死锁处理

2017-08-04 10:47:38 216

原创 操作系统之进程与线程5——进程同步与信号量

多进程除了切换和调度之外,还有相互之间的合作问题(即进程同步:多个进程共同完成一个任务),而实现进程同步的合理有序,需要靠信号量。从进程同步提出信号多个进程之间按照一定顺序进行,一个进程的执行可能依赖于另外的进程执行时发出的特定信号(状态:有/无)。因此,控制多个进程按条件执行,依赖于特定信号的传递。例如,实例1即需要传递 关门之后的信号。从信号到信号量

2017-08-02 23:13:02 804

原创 操作系统之进程与线程4——进程调度

一、进程调度策略进程调度策略依照不同的应用也有不同的策略,比如卫星导航系统需要实时性强、嵌入式系统需要省电等调度策略具体实现。而且面对不同的情况,有无穷尽的调度策略,因此本文只讨论一般普通PC机的几种一般调度策略。由前边进程、线程切换的知识可知,进程调度策略即是:如何从进程就绪队列中选取下一个即将运行的进程(即作为p_NEXT,进行进程切换)。进程调度策略满意度判断?

2017-08-02 19:54:48 610

原创 操作系统之进程与线程3——内核级线程及切换(未完成)

内核级线程进程必须在内核中(因为进程要分配资源,访问内存、文件系统等),没有用户级进程的说法,因此切换进程包含切换内核级线程,而不是用户级线程。(切换用户级线程只是能帮助切换内核级线程的理解)——  因此,一个系统中,进程、内核级线程、用户级线程都有。多处理器和多核的区别?多核共用一套缓冲区、映射表。而多核要充分发挥自己的作用,必须使用内核级线程,进程、用户级线程都不行。—

2017-08-01 15:41:40 364

原创 操作系统之进程与线程2——用户级线程及其切换

一、用户级线程如何只切换指令,而资源不动?——线程切换+映射表切换=进程切换(在内存管理之后讲),先搞懂线程切换,再做进程切换线程切换即只切换指令序列(即只有PC变化和寄存器变化),而其他资源不进行变化。即将资源和指令分开管理,同时产生线程切换和进程切换。在进程中间可以启动多个轻巧的指令序列:多线程,并可以切换。进程和线程的区别?线程时进程的一种补充

2017-07-28 11:28:28 4559

原创 操作系统之进程与线程1——进程概述

一、CPU管理、进程管理CPU时,引出 “进程、线程” 。CPU如何动作呢?给定指令的初始地址,CPU即会自动+1取指执行(取指、取数据)对于含有IO指令和不含IO指令的一段程序,CPU的执行时间要查好几个量级,因为CPU在硬件电路上工作,速度特别快,IO指令在磁盘(磁臂——机械结构)工作,所以执行速度差好几个量级。——可以把CPU看做人,其他指令操作都看成要做的事情,

2017-07-27 22:55:11 375

原创 用到的C++语法

一、运算符点运算符 . :类对象(自定义类,容器,string,结构体struct ...)直接访问其成员;成员访问运算符 -> :通过指针访问类对象的成员,ptr ->member 等价于 (*ptr).member ;(即 ptr 为指向类对象指针,此为通过指针访问成员的方式)二、类对象与this如结构体:template struct chainCode{ T el

2017-07-14 17:38:33 170

原创 (二)线性表

6、方法erase3种情况:(1)theIndex = listSize(删除无效 或 空表listSize=0)——checkIndex;(2)删除第一个节点;(3)删除内部节点;从链表的删除可以看出:无论是(2)和(3)对删除节点的指针域是否为NULL都一样——即 前驱的指针域 = 删除节点的指针域,即“找前驱”即可。7、方法insert

2017-07-14 17:18:48 292

转载 UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

转载自:http://blog.csdn.net/hguisu/article/details/7609483类与类图1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责

2017-07-05 23:00:46 845

转载 Linux文件系统详解

转载自:http://blog.csdn.net/new0801/article/details/63687127最近在做磁盘性能优化,需要结合文件系统原理去思考优化方向,因此借此机会进一步加深了对文件系统的认识。在看这篇文章之前,建议先看下前面一篇关于磁盘工作原理的解读。下面简单总结一些要点分享出来:一、文件系统层次分析由上而下主要分为用户层、VFS层、文件系统层、缓

2017-06-16 11:15:21 773

原创 操作系统(四):文件管理、文件系统

4.4 文件目录结构结合Linux文件系统学习:http://blog.csdn.net/kyang_823/article/details/73302248与文件管理系统和文件集合相关联的是文件目录,它包含有关文件的信息,包括属性、 位置和所有权等,这些信息主要是由操作系统进行管理。首先我们来看目录管理的基本要求: 从用户的角度看,目录在用户(应用程序)所需要的文件名和文件之间提供一

2017-06-16 10:33:54 2530

原创 Linux基础(二):文件系统、文件存储结构

一、Linux文件系统文件系统就是分区或磁盘上的所有文件的逻辑集合。文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。不同Linux发行版本之间的文件系统差别很少,主要表现在系统管理的特色工具以及软件包管理方式的不同,文件目录结构基本上都是一样的。文件系统有多种类型,如:ext2 : 早期l

2017-06-15 21:01:02 8249 1

原创 Linux基础(一):文件和目录管理

一、Linux文件管理元字符* 匹配一个或多个字符? 匹配一个字符文件操作命令mv:移动/重命名文件或者目录cp:复制文件ls:列出文件或者目录信息(-l 详细信息)wc:统计当前文件的行数、单词数和字符数cat:查看文件内容(-n 显示行号)rm:删除文件标准的Linux流一般情况下,每个Linux程序运行时都会创建三个文件流(

2017-06-14 21:03:43 507

原创 操作系统(二):进程和线程管理_3_处理机调度

2.7 处理机调度调度的概念1. 调度的基本概念在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、髙效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。处理机调度是多道程序操作系统的基础,它是操作系统设计的核心问题。2. 调度的层次一个作业从提交开始直到完

2017-06-14 14:25:48 714

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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