硬盘参数 PIO/DMA/UDMA/SWDMA/MWDMA PIO的英文拼写是“Programming Input/Output Model”,PIO模式是一种通过CPU执行I/O端口指令来进行数据的读写的数据交换模式。是最早先的硬盘数据传输模式,数据传输速率低下,CPU占有率也很高,大量传输数据时会因为占用过多的CPU资源而导致系统停顿,无法进行其它的操作。PIO数据传输模式又分为PIO mode 0、PIO mode 1、PIO mode 2、PI
内存区域的划分和分配 1.内存分配方式 内存分配方式有三种: [1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 [2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 [3]从堆上分配,
磁盘扇区、柱面详解 在下图中,我们可以看到一圈圈被分成18(假设)等分的同心圆,这些同心圆就是磁道(见图).不过真打开硬盘你可看不到.它实际上是被磁头磁化的同心圆.如图可以说是被放大了的磁盘片.那么扇区就是每一个磁道中被分成若干等分的区域.相邻磁道是有间隔的,这是因为磁化单元太近会产生干扰.一个小软盘有80个磁道,硬盘嘛要远远大于此值,有成千上万的磁道.每个柱面包括512个字节。那么什么是柱面呢?看下
C++中调用开源库路径问题 包含目录:#include 中headerfile.h的搜索目录。如果有X.h找不到,设置这个目录可以解决。库目录:就是寻找.lib文件的目录。附加依赖项:C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码。在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1
Ubuntu 16.04与Win 7双系统时间相差8小时解决方法 在Ubuntu 16.04终端下输入:sudo timedatectl set-local-rtc 1然后在Win 7下将时间调准确即可
ubuntu 16.04安装WPS总结 安装:1)下载:WPS For Linux2)安装命令:sudo dpkg -i wps-office_10.1.0.5672~a21_i386.deb安装完成后存在的问题:一 字体缺失问题1)下载:wps_symbol_fonts.zip2)创建目录:sudo mkdir /usr/share/fonts/wps-office3)将下载的字体复制到创建的目录:
Ubuntu 16.04下安装搜狗拼音输入法的错误问题 引言: sogou输入法是市场上最为好用和流行的输入法,最为良心的是还有Linux版本,这让我等Linux人士欢呼雀跃。在新出的Ubuntu 16.04上安装sogou输入法的时候,碰到了一些问题,主要还是依赖包没有正确安装,我们一起来看如何来解决这个问题。1. 环境介绍 Ubuntu 16.04, sogou输入法: sogoupinyin_2.0.0.0078_amd
ubuntu 16.04连不上WiFi 具体如下:1.用手机数据流量,通过开蓝牙或者USB给你的ubuntu系统连上网。2.打开火狐浏览器看看,确保你真的连接上网了。3.打开左边的 系统设置--》系统--》软件和更新--》开发者选项 把提前释放出的更新打勾了。(我记得我还去 软件和更新--》更新 下的又新版本时通知我改 适用长期支持版本 改为 适用任何新版本 了。你要不要也改改,反正能改回来嘛!)4.接
递归判断一维数组是否为升序数组 这么容易的题,考场竟然没写出来,惭愧啊!书还得多看啊!bool UpSort(int a[], int start, int end)//start为数组的第一个下标,end为数组的第二个下标{ if (start == end) return true; else if (a[start] <= a[start + 1]) return UpSort(a, start + 1,
C++中的new、operator new与placement new new operator/delete operator就是new和delete操作符,而operator new/operator delete是函数。new operator(1)调用operator new分配足够的空间,并调用相关对象的构造函数(2)不可以被重载operator new(1)只分配所要求的空间,不调用相关对象的构造函数。当无法满足所要求分配的空间
八皇后问题的全排列解法 本文转自微软何海涛的微博。微博网址:http://zhedahht.blog.163.com/ 直接上代码:#include#include#include#includeusing namespace std;int g_number = 0;//全局变量,记录解法的总数void Permutation(int ColumnIndex[], int length, i
C++中的拷贝 一、拷贝构造函数1、拷贝构造函数的参数为什么必须使用引用类型? 答:如果拷贝构造函数中的参数不是一个引用,即形如CClass(const CClass c_class),那么就相当于采用了传值的方式(pass-by-value),而传值的方式会调用该类的拷贝构造函数,从而造成无穷递归地调用拷贝构造函数。因此拷贝构造函数的参数必须是一个引用。 需要澄清的是,传
初探句柄 1.引出句柄CDC问题:1.CDCdc;dc.LineTo(point);无法运行2.CDC*dc=GetDC();dc->LineTo(point);就可以运行了MFC中有大量的句柄包装类。顾名思义,所谓句柄包装类,指的是这些类是封装了系统对象的句柄(HWND,HDC,HBITMAP等等),并提供了一组成员函数作为访问系统对象的接口。(这是一种资源封装的理念的体现
C++函数中不可被声明为虚函数的函数 常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。 1、为什么C++不支持普通函数为虚函数? 普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。2、为什么C++不支持构造函数为虚函数? 这个原因很简单,主要是从语义上考虑,所以
给定一整数在有序的整数数组中找出与给定值最接近的k个整数 思路:首先找出给定值在给定数组中的插入位置(不是真的将给定值插入给定数组),然后以此位置为基准,向左或向右依次找出最接近的k个整数。难点:个人在处理过程中的难点在于向左或向右移动过程中的确切位置的确定。代码://找出value在数组中的应该插入位置int kPosition(int A[], int nLength,int value){ int pos = 0;
std::bind与std::function详解 std::bind1、定义bind(F f, T1 t1, T2 t2, ..., TN tN);具体为:bind(&要调用的函数,&对象, 要调用函数的参数1,要调用函数的参数2...,_1(bind函数的参数1),_2(bind函数的参数2)...)注:如果bind的是一个非静态成员函数,第二个参数一定是一个该成员的一个指针,后面才是正常的参数。2、bind使用形式
C++中getline与C中scanf、gets小结 getline()的原型是istream& getline ( istream &is , string &str , char delim );其中 istream &is 表示一个输入流,譬如cin;string&str表示把从输入流读入的字符串存放在这个字符串中(可以自己随便命名,str什么的都可以);char delim表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为
C语言中函数参数入栈的顺序 先通过一个小程序来看一看: #include void foo(int x, int y, int z){ printf("x = %d at [%X]n", x, &x);printf("y = %d at [%X]n", y, &y);printf("z = %d at [%X]n", z, &z);} int main(int argc
ubuntu终端下常用快捷键 新建终端窗口: crtl+shift+N 终端的漂移/切换:shift+左右箭头 挂 起:crtl+s 解除挂起:crtl+q 清 屏:crtl+l命令行光标移动: crtl+a 移动到命令行首 crtl+e移动到命令行尾 crtl+u 从当前光标所在位置向前清除命令 crtl+c 中断操作tab 命令补全/路径补全/文件名补