自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 资源 (4)
  • 收藏
  • 关注

翻译 Ubuntu 16.04 the system is running in low-graphics mode

莫名其妙,出现如题的错误,尝试了不少办法,最终解决方案如下:1.ctl+alt+f1 切换到命令行界面2.依次输入一下命令cd /etc/X11sudo cp xorg.conf.failsafe xorg.confsudo reboot ...

2018-08-06 10:27:06 676

原创 VMware + Ubuntu16.04 SSH 服务 环境搭建

 背景Windows 下,进行Linux 开发,非常常见的方法是在VMware下运行Ubuntu系统。为了方便Windows 与Ubuntu之间文件传输等,需要在虚拟机下搭建一个(模拟)服务器来供Windows主机访问,比如搭建一个telnet/ssh。但每次启动虚拟机,VMWare为虚拟机系统分配一个动态IP,这样每次使用XShell去连接虚拟机很不方便,最好就是设置静态IP。...

2018-08-02 16:02:58 3572

原创 xshell 无法连接ubuntu

检查是否安装 ssh方式之一:使用 which 命令whichssh which ssh which sshd方式之二:使用 ssh$ ssh localhost如果方式一,which sshd不显示任何内容,或者方式二,提示输出connection refused,这就表明还没有安装 ssh。安装 openssh-server使用 sudo apt-get install openss

2017-09-27 14:34:56 787

原创 Ubuntu firefox 上无法联网

问题描述1:firefox 登录百度失败。 解决方案: **打开Firefox 点击右上角三条杠 进入【选项】 点击【高级】 切换到【网络】 点击【连接设置】 设置为【不使用代理】即可** 如果还没能解决问题!请接着往下看。 尝试ping www.baidu.com —>unknown host www.baidu.com 如果确定网络没问题的情况下, 可以通过如下步骤寻找解

2017-09-27 14:31:11 4989 1

原创 Qt QMutexLock 自动解锁机制

QMutexLocker 自动解锁机制QMutexLocker 是一个便利类,它可以自动对QMutex加锁与解锁。因为QMutexLocker 申请的这个lock变量在这个函数退出时,自动的调用析构函数来解锁。这样可以防止在程序编写的过程中,不同的地方有多个return的情况,在发生return的时候,没有解锁,导致程序死锁。 下面是一个例子,分别使用了以上两个类。 一、使用QMutex in

2017-09-14 11:49:22 9334

原创 Vs2013 中设置Pythonw

1.右键选择打开方式 2.点击添加,在弹出的窗体中修改友好名称为pythonw 效果:默认的python.exe 会打开一个控制台界面,使用pythonw.exe可以不显示控制台程序。

2017-06-14 18:14:21 522

原创 项目实践一:如何在列表、字典中根据条件筛选数据?

列表:filter 函数 和列表解析利用filter 函数from random import randintdata = [randint( -10,10) for i in xrange(10) ]print datanew_data = filter(lambda x: x >= 0,data)print new_data执行效率测试 In [13]: timeit filte

2017-01-13 17:00:10 1101

原创 ipython

ipython是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。在ubuntu 下只要 sudo apt-get install ipython 就装好了,通过 ipython 启动。 michael@michael:~$ ipython Python 2.7.6 (

2017-01-13 15:36:34 338

原创 if __name__ 技巧

python 中 if name 技巧允许这个程序在自己独立运行时做些有用的事情,同时又不妨碍作为其它程序的模块使用。 1. 如果模块是被导入,name的值为模块名字 2. 如果模块是被直接执行,name的值为’main’

2016-12-22 15:33:37 438

翻译 ubuntu 用户不在sudoers文件中

解决方案 1.reboot ubuntu,按住shift 键不放,进入recovery mode (如何进入请参考其他文章) 2.输入密码后,第一条命令是:mount -o rw,remount / 3.usermod -G sudo username 4.mount -o remount,ro /

2016-12-13 18:38:01 2559

原创 python version 2.7 required,which was not found in the registry

pycharm 中安装mysql_python时,提示错误,需要安装文件MySQL-python-1.2.3.win-amd64-py2.7时,但安装此文件时又出现提示:python version 2.7 required,which was not found in the registry。 解决方案:方法:新建一个register.py 文件,把一下代码贴进去,保存.## script

2016-06-15 10:37:40 460

原创 python——template (一)

1.文件说明 settings.py:Generated by ‘django-admin startproject’ using Django 1.9.6. 2.# Build paths inside the project like this: os.path.join(BASE_DIR, …) BASE_DIR = os.path.dirname(os.path.dirname(os.p

2016-06-04 10:14:02 860

原创 python——python manage.py runserver执行错误

Traceback (most recent call last): File “manage.py”, line 10, in execute_from_command_line(sys.argv) File “/usr/local/lib/python2.7/dist-packages/django/core/management/init.py”, line 385,

2016-06-03 15:02:50 13042

原创 命令形式新建第一个python 项目

1.django-admin startproject myblog 2.ls ,myblog下面生成manage.py文件,和一个myblog 文件夹。 3.django-admin.py是Django的一个用于管理任务的命令行工具。本文将描述它的大概用法。 另外,在每一个Django project中都会有一个manage.py。manage.py是对django-admin.py的简单包

2016-06-03 11:15:59 2127

原创 Python开发环境搭建

工作环境:Ubuntu 12.04 1.Ubuntu 默认自带python,可以通过命令python 查看当前版本。官网地址:http://www.python.org/ 2.Django—-python web 开发框架,安装Django.官网地址:https://www.djangoproject.com/ 3.使用命令安装:sudo pip install Django==1.7.3,需

2016-06-03 10:01:43 381

原创 Ubuntu firefox 联网失败解决方法

Ubuntu 安装完成以后,一直上不了网,百度也连不上。尝试了很多办法,最后发现很简单——更新firefox 即可,两条命令。 1.sudo apt-get update 2.sudo apt-get install firefox

2016-06-03 09:16:20 10221 4

原创 Ubuntu 上NFS Server安装使用过程

实现步骤: 1.服务器端:sudo apt-get install portmap 2.服务器端:sudo apt-get install nfs-kernel-server 3.客户端:sudo apt-get install nfs-common 4.服务器端配置:sudo gedit /etc/exports添加:/home/share 192.168.1.101 *(rw,sync,

2016-03-31 08:40:16 560

原创 Qt 源码编译详细说明

安装qt-everywhere-opensource-src-4.8.5.tar.gz文件步骤: 1、利用FZ软件把安装包从windows传到linux上某一文件中(如Documents)。 注:问题: 此时出现FZ连接不上 解决方案:在终端输入 sudo apt-get install openssh-server 原因:ubuntu 没有开通SFTP协议(只能先打开服务器端口,

2016-03-18 10:11:32 3904

原创 Item 36——区分接口继承和实现继承

(公有)继承的概念看起来很简单,进一步分析,会发现它由两个可分的部分组成:函数接口的继承和函数实现的继承。这两种继承类型的区别和函数声明和函数定义间的区别是完全一致的。class Shape { public: virtual void draw() const = 0;//使派生类仅仅只是继承函数的接口(声明),需要提供自己版本的函数定义virtual void error(const s

2016-01-20 14:56:37 374

原创 类之间常见关系

1.使公有继承体现 “是一个” 的含义记住一句话:公有继承意味着 “是一个” 的含义! class Person { … };class Student: public Person { … };每个学生是一个人,但并非每个人是学生。void dance(const Person& p); // 任何人可以跳舞 void study(const Student& s);

2016-01-20 11:45:08 397

原创 ++与 -- 操作符前缀形式与后缀形式的区别

class UPInt // "unlimited precision int"{   public:   UPInt& operator++(); // ++ 前缀   const UPInt operator++(int); // ++ 后缀   UPInt& operator--(); // -- 前缀   const UPInt operator--(int); // -- 后缀

2016-01-19 10:52:51 2539 1

原创 fork应用---子进程调用execve

//open.c 文件 1.父进程中打开一个现有文件123.c,fork出一个子进程 2.子进程中调用execve函数,新的进程替换子进程#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <fcntl.h>#include <errno.h>#include <unistd.h>#include <

2015-11-17 11:36:29 1743

原创 C——生成log文件

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <time.h>void writelog(const char *log){ time_t tDate; struct tm *eventTime; time(&tDate); eventTime = loc

2015-11-06 15:17:05 830

原创 细说GCC、Make、GDB

一、GCC//test.c#include <stdio.h>#include <stdlib.h>void main(){ printf("GCC is a strong tool "); return;}程序编译过程如下图: **使用命令表示过程如下:gcc -o test test.c** 这条命令告诉GCC对源程序test.c进行编译和链接,并使用参数-o创建名

2015-11-06 14:26:34 431

原创 Linux -Qt 开发环境搭建

在linux 下开发Qt 项目,首先开始环境搭建工作。 linux 版本是Red hat Enterprise linux 641.下载最新的qt版本,qt-opensource-linux-x64-5.2.1.run,这是一个可执行文件,在Linux下可以直接双击运行安装。 2.安装完qt后执行不了,因为最新的qt需要匹配更高的gcc,没办法只能是更新gcc。 http://gcc.gnu.

2015-10-12 14:07:18 488

原创 函数模板

/* 1 函数模板可以像普通函数一样被重载 2 C++编译器优先考虑匹配普通函数 3 如果函数模板可以产生一个更好更精确的匹配,那么选择模板 4 可以通过空模板实参列表的语法限定编译器只匹配模板函数 *//* 函数模板不允许自动类型转化,隐式的类型转换编译器会报错 普通函数能够进行自动类型转换 */#include <iostream>using std::cout;using

2015-10-05 10:02:32 286

原创 dll 设计与调用

**dll作为程序一个部分,可以理解为系统中的模块,被嵌入调用以完成某一特定功能。 .dll文件:描述的是函数接口,以及具体的函数接口入口地址信息 .lib文件:是对dll的资源描述文件** 如何调用dll文件? 方法一:借助vs2013编译器 1.将生成的dll资源(.h,.dll,.lib文件)拷贝至当前测试工程目录下,如:Debug文件夹的同一级目录。 2.添加.h文件到当前工程中

2015-10-05 00:13:42 527

原创 C语言——接口设计原则

接口的封装与设计尤为重要,一个好的接口应该是调用简单,功能强大。 一般的函数完成一个功能,因为函数只有一个返回值。 但可以通过指针做函数参数,使得一个函数具有多个输出,从而完成多个功能,而函数返回值则是用来提示此接口调用过程中异常行为。当然,函数返回值有时候为了支持链式编程而返回特定类型数据,就不能让其指示异常行为了。#define _CRT_SECURE_NO_WARNINGS#include

2015-10-03 23:09:12 2826

原创 指针做函数参数——高效C语言

1.指针做函数参数——高效 2.思维扩展,谁为main()函数初始化环境,准备的内存空间?指针做函数参数需求1:打印一个一维数组的各个元素 定义函数接口 1.void PrintArray_1(int a[10]); 2.void PrintArray_2(int a[], int len); 3.void PrintArray_3(int *pArray, int len);//效率最高

2015-10-03 11:20:51 522

原创 C 源码学习——memcpy函数

#include <cruntime.h>#include <string.h>#pragma function(memcpy)/*memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束。返回值 返回指向dest的指针。 附加说明 指针src和dest所指的

2015-10-02 09:51:44 3907

原创 浅谈软件设计思想

以C/S框架为例:客户端与服务器端,使用的协议是TCP/IP协议。说明: 协议——接口的声明,只管声明接口(函数三要素),不关心具体谁来实现及实现细节。 客户端/服务器端——根据协议所提供的接口,按照接口所要求的功能去实现细节。关键思想:协议是核心,是标准,指定标准的人或部门利益最大。 世界范围内,美国人干的事很多是制定行业协议或标准,其他国家则都需要按照协议或标准去实现细节。 中国,央企或

2015-10-02 00:53:26 675

原创 深入理解C++三大特性之一 ——多态

1.多态的实现效果 多态:同样的语句调用能呈现不一样的表现形态; 2.多态实现的三个条件 a)继承 b)virtual关键字修饰 c)父类指针指向或引用子类对象 3.多态的C++实现 通过virtual关键字,告诉C++编译器对这个函数要支持多态; 不要在编译期间根据指针类型判断如何调用;而是要根据运行期间指针所指向的实际对象类型来判断如何调用

2015-10-01 11:24:02 928

原创 C++ ——三大特性理解

1.封装 突破了C语言函数的概念,封装可以隐藏实现细节,使得代码模块化。2.继承 继承可以扩展已存在的代码模块(类);达到代码重用的目的。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。3.多态 接口重用,多态可以使用未来,即当前的框架不需改变也可以使用后来的代码。封装可以隐藏实现细节,使得代码模块化;封装是把成员变量和

2015-10-01 10:03:02 8959

原创 C++——Static变量初始化

静态变量初始化1.静态变量是属于类的,需要显式向编译器申请内存,并手动初始化。 2.不能指望构造函数默认不为其分配内存及默认初始化,因为构造函数是为构造非static 成员的。#include <iostream>using namespace std;class Person{public: Person() { }public: static in

2015-09-30 23:21:01 554

原创 More Effective C++ ——019_理解临时对象的来源

条款十九:理解临时对象的来源什么叫临时变量?先看下面这个例子:  template<class T>  void swap(T& object1, T& object2)  {   T temp = object1;   object1 = object2;   object2 = temp;  }一般人把temp叫做临时变量。但对C++而言,temp根本不是临时变量,它是一个函数的局部

2015-09-24 17:49:46 606

原创 More Effective C++ ——08_理解各种不同含义的new和delete

条款八:理解各种不同含义的new和delete1.区别 new操作符(new operator)和operator new    string *ps = new string("Memory Management");这里的new是new operator。就象sizeof一样是语言内置的,你不能改变它的含义,它完成两个功能。 1)分配内存 2)调用构造函数初始化内存中的对象。(C语言中ma

2015-09-24 15:03:13 462

原创 More Effective C++ ——02_尽量使用C++风格的类型转换

条款二:尽量使用C++风格的类型转换C风格的类型转换的特点: 一、它们过于粗鲁,能允许你在任何类型之间进行转换。 例如把一个指向const对象的指针(pointer-to-const-object)转换成指向非const对象的指针(pointer-to-non-const-object)(即一个仅仅去除cosnt的类型转换),把一个指向基类的指针转换成指向子类的指针(即完全改变对象类型)。 传

2015-09-23 16:34:33 349

原创 More Effective C++ ——01_指针与引用的区别

条款一:指针与引用的区别  指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。   问题:你如何决定在什么时候使用指针,在什么时候使用引用呢? 区别1:引用必须初始化(现代编译器会进行检查),而指针不用强求,虽然不初始化会带来安全隐患。  注:不存在指向空值的引用这个事实意味着使用引用的代

2015-09-23 15:47:12 372

原创 Effective C++——必须返回对象时,别妄想返回其引用或指针

pass-by-value与pass-by-reference比较起来效率低很多,优先选择后者。但要注意有时候返回引用或指针会带来问题。class Rational{ public: friend const Rational& operator*(const Rational& lhs,const Rational& rhs) { Rational res

2015-09-22 14:08:06 391

原创 Effective C++——资源管理

C++ 中的资源类型:1.最为常见也最为熟知的是内存资源 2.文件描述器 3.互斥锁 4.数据库连接 5. socket 6.GUI 中 的字型、笔刷等在不再使用这些资源时,确保释放掉这些资源是必须的。但现实往往很难,由于异常出现、函数内多重回传路径、程序后期维护者未能理解前者的意图导致的维护异常等一、以对象管理资源1.定义一个类,class Person{}; 2.Person* CreateP

2015-09-21 16:58:26 393

线性表的链式存储代码--C语言版

1.C 语言实现的线性表的链式存储功能 2.包含测试用例代码

2016-02-22

c++——运算符重载(四) 源码

c++ 运算符重载的综合demo,知识点众多,内容强大。

2015-09-09

linux 内核技术

linux 内核文档 帮助你深入了解linux 内核开发技术

2013-04-03

TDS642evm用户安装手册

这是一个DSP开发板TDS642系列的用户安装手册

2009-10-15

空空如也

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

TA关注的人

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