自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 一个unsigned int 数的二进制表示中有多少个1

这是一道面试题可以用以下的一些方案。第一种是很容易想到的采用循环的方式并且与1进行位与运算,具体代码如下。1unsignedintGetBitNumOfOne_ByLoop1(unsignedintnValue)2{3constunsignedintnNumOfBitInByte=8;4unsignedintnBitMask=1;5unsig...

2018-01-18 00:12:00 307

转载 一个栈的入栈序列为ABCDEF,则不可能的出栈序列是

技术之瞳 阿里巴巴技术笔试心得习题2.65:  一个栈的入栈序列为ABCDEF,则不可能的出栈序列是(D)  A、DEFCBA    B、DCEFBA    C、FEDCBA  D、FECDBA    E、ABCDEF    F、ADCBFE  分析:  该题主要是考虑栈的核心思想是先进后出,并且需要注意入栈和出栈的顺序是未知的,例如你可以先入栈ABCD,然后出栈D,然后入栈...

2017-12-19 13:23:00 578

转载 文件操作:获取一个文件行数的方法

获取一个文件行数的方法,需要的朋友可以参考一下第一种方法思路:将文件中的字符一个一个读出,然后与 \n 作比较。 #include <stdio.h> #include <string.h> #include <errno.h> int main...

2017-12-15 21:34:00 434

转载 利用sourceinsight宏(Quicker.em)提高编码效率和质量

利用sourceinsight宏(Quicker.em)提高编码效率和质量Marco是sourceinsight软件一个强大的功能,用户可以通过编写宏来实现自定义功能。这里有个比较流行的宏文件quicker.em,原作者貌似是原Huawei公司的员工编写整理的,基本功能比较全,可以满足一般的需求,个人也可以根据这个为基础进行更个性化的改写。通过如下配置:1.运行SI,打开Base工程...

2017-12-09 00:10:00 414

转载 数据结构——树

1、树的相关定义(1)树:包含n(n>0)个节点的有穷集合,其中每个元素称为节点(node);有一个特定的节点被称为根节点或树根(root);除根节点之外的其余数据元素被分为m(m≥0)个互不相交的结合T1,T2,……Tm-1,而其中每一个集合Ti(1<=i<=m)本身也是一棵树,被称作原树的子树(subtree)。(2)节点的度:一个节点含有的子树的个数...

2017-12-07 23:17:00 125

转载 memmove和memcpy函数的区别及实现

一、memmove()和memcpy()函数和strcpy()函数的区别;(1)使用的类型不同,strcpy()函数只对字符串进行操作;memmove()和memcpy()函数对所有类型都适用,为内存拷贝;(2)strcpy()以’\0’为拷贝的结束条件;而memmove()和memcpy()函数则是以第三个参数num进行控制拷贝;二、函数说明:1.memcpy函数的功能是...

2017-12-07 20:18:00 143

转载 linux下查看进程的状态 /proc/[pid]/status

查看进程的状态:1.查看进程的pid,以java为例:ps -ef | grep java2.查看进程状态:cat/proc/[pid]/status关键字: linux[root@localhost ~]# cat /proc/self/statusName: catState: R (running)SleepAVG: 88%Tgid: 5783Pid...

2017-12-05 22:15:00 240

转载 谷歌浏览器去除广告--广告终结者

每次使用谷歌浏览器查阅一些资料的时候,总是会弹出一大堆广告窗口,影响阅读体验。现在找到一种方法可以屏蔽网页上浮动的,弹框的,渐变的广告。1. 下载离线插件安装包Advertising-Terminator_v3.1.4.crx2. 在谷歌浏览器,自定义及控制中->更多工具->扩展程序中拖入此插件。3. 点击安装。4. 之后就会开启功能,浏...

2017-12-05 10:33:00 218

转载 sem_wait sem_post信号量操作进本函数

sem_wait sem_post信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为:  extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value));  sem为指向信号量结构的一个指针;pshare...

2017-12-04 21:53:00 257

转载 va_start(),va_end()函数应用

原理解释:VA_LIST 是在C语言中解决变参问题的一组宏,在<stdarg.h>头文件下。VA_LIST的用法:(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针(2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数...

2017-11-29 23:33:00 132

转载 如何写出优美的 C 代码 面向对象的 C

基础知识结构体除了提供基本数据类型外,C 语言还提供给用户自己定制数据类型的能力,那就是结构体,在 C 语言中,你可以用结构体来表示任何实体。结构体正是面向对象语言中的类的概念的雏形,比如:typedef struct{ float x; float y; }Point;定义了一个平面坐标系中的一个点,点中有两个...

2017-11-29 00:00:00 120

转载 Source Insight快捷键

常用使用技巧按住"ctrl", 再用鼠标指向某个变量(或函数),点击一下,就能进入这个变量(或函数)的定义。 快捷键"Alt + F12",可以让显示界面中的每个字符宽度一致。"shift+F8"标亮所有文本中光标所在位置的单词。 跳到某一行:F5或者"ctrl + g"。"Ctrl + o"跳转至Project Window的查找入口,"回车"打开相应文件并关闭查找窗口;...

2017-11-28 10:24:00 108

转载 大话数据结构

数据结构按照视点的不同可分逻辑结构和物理结构。逻辑结构:1.集合结构2.线性结构3.树形结构4.图形结构物理结构:1.顺序存储结构2.链式存储结构算法定义:算法是解决特定问题求解步骤的 描述 ,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法的5个基本特性:输入、输出、有穷性、确定性和可行性。可行性和确定性可行性:算...

2017-11-21 21:56:00 119

转载 后ARM时代,嵌入式工程师的自我修养

1 嵌入式学习的一些概念理解误区很多嵌入式初学者认为,学嵌入式,就是学习ARM,就是学习开发板。买一块开发板,然后在上面“移植”u-boot、Linux内核,再使用busybox制作一个根文件系统,大功告成!觉得可以出去找工作了。这其实是有一定片面性的:首先ARM是个CPU架构,跟PC上的X86架构一样,你见过有人在Windows下面学习C/C++编程、MFC编程、网络编程...

2017-11-05 21:12:00 162

转载 error while loading shared libraries: xxx.so.x"错误的原因和解决办法

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory原因一般有两个, 一个是操作系统里确实没有包含该共享库...

2017-11-05 20:45:00 111

转载 gcc/clang编译带pthread.h头文件的源码时需要的参数

今天敲了一个小程序,编译时出现错误:undefined reference pthread_create原来由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数:gcc -o test -lpthread test.c再查发现编译时参数写成 -pthread...

2017-11-04 01:19:00 535

转载 shell中$(( ))与$( )还有${ }的区别

$( )与` `(反引号)在bash shell中,$( )与` `(反引号)都是用来做命令替换(command substitution)用的。$ echo the last sunday is $(date -d "last sunday" +%Y-%m-%d)得到上一星期天的日期用$( )的理由1. ` `很容易与' '(单引号)搞混。有时在一些奇怪的字形显示中,两...

2017-10-21 22:16:00 113

转载 终端、虚拟终端、shell、控制台、tty的区别

终端与控制台的区别?最近开始接触Linux,终端、虚拟终端、shell、控制台、tty等概念让我很混乱,有必要认识清楚。今天看到有人问终端和控制台的区别,而且这个问题比较有普遍性,因此想抽出一点时间来解释一下这两个术语的区别。  终端,英文叫做terminal ,通常简称为term ,比如我们在X下的xterm.   控制台,英文叫做console.  要明...

2017-10-21 12:33:00 144

转载 线程上下文切换和进程上下文切换的区别

进程切换分两步1.切换页目录以使用新的地址空间2.切换内核栈和硬件上下文。对于linux来说,线程和进程的最大区别就在于地址空间。对于线程切换,第1步是不需要做的,第2是进程和线程切换都要做的。所以明显是进程切换代价大线程上下文切换和进程上下问切换一个最主要的区别是线程的切换虚拟内存空间依然是相同的,但是进程切换是不同的。这两种上下文切换的处理都是通过操作系统内核来完成的。内核...

2017-10-17 01:37:00 185

转载 多种缺陷管理软件简介

缺陷管理工具:1.Bugzilla2.Bugfree3.TestDirector (Quality Center)4.ClearQuest5.JIRA6.Mantis7.Bugzero8. BugTracker9. URTracker10.KisTracker11.TestLink12、JTrac13、BugNet14、BugOnline15、eTraxis一...

2017-10-16 01:47:00 185

转载 现代操作系统 第一章 引论 笔记

现代操作系统封面上的趣图什么是计算机系统?现代计算机系统由一个或多个处理器、主存、磁盘、打印机、键盘、鼠标、显示器、网络接口以及各种其他输入/输出设备组成。什么是操作系统?操作系统是一个软件,它的任务是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理组成计算机系统的各种设备。操作系统的两个功能?1. 扩展机器(自顶向下的观点)操作系...

2017-10-15 23:05:00 220

转载 CentOS 7系统KVM虚拟机安装过程详解

什么是 KVM ?KVM 在标准的 Linux 内核中增加了虚拟技术,从而我们可以通过优化的内核来使用虚拟技术。在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启动客户机操作系统。一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)。一个典型的 KVM 安装包括以下部...

2017-10-08 17:06:00 164

转载 项目代码统计

项目代码统计:工具一:SourceInsight工程建立完毕后,选择菜单Project->Project Report ,再选择需要的选项导出报表,点ok。比如,我选择每个文件的大小以及行数。结果如下:使用source insight工具统计代码的确比较方便,一键即可完成,但有一定的局限性,比如不能对文件按照类型进行统计。工具二:Linux命令行...

2017-10-07 17:25:00 165

转载 CentOS 7 利用qemu模拟ARM vexpress A9开发板

听说qemu用于仿真arm很不错,今日就来试了一把。由于刚刚开始,了解的并不多。本文仅仅记录Qemu装载Linux kernel和busybox根文件系统的过程。后续将会深入了解仿真的其他内容。先上成果图:1. 安装QEMUQEMU是一套由Fabrice Bellard所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。Bochs,PearPC...

2017-10-06 23:49:00 382

转载 arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别

命名规则交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]arch- 体系架构,如ARM,MIPSvendor- 工具链提供商os- 目标操作系统eabi- 嵌入式应用二进制接口(Embedded Application Binary Interface)根据对操作系统的支持与否,ARM GCC可分为支持...

2017-10-06 11:34:00 103

转载 使用 pyenv 可以在一个系统中安装多个python版本

Installl relatedyum install readline readline-devel readline-static -yyum install openssl openssl-devel openssl-static -yyum install sqlite-devel -yyum install bzip2-devel bzip2-libs...

2017-10-02 00:34:00 73

转载 QEMU编译安装

QEMU是一个支持跨平台虚拟化的虚拟机,有user mode和system mode两种配置方式。其中qemu在system mode配置下模拟出整个计算机,可以在qemu之上运行一个操作系统。QEMU的system mode与常见的VMware和Virtualbox等虚拟机比较相似,但是QEMU的优势是可以跨指令集。例如,VMware和Virtualbox之类的工具通常只能在x86计算...

2017-10-02 00:01:00 116

转载 在Linux上显示某个进程的线程的几种方式

方法一:PS在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。1.$ ps -T -p 方法二: Toptop命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。1.$ top -H要让top输出某...

2017-09-30 14:08:00 286

转载 Linux ACL权限控制

ACL权限控制设置ACL权限:setfacl查看ACL权限:getfaclACL权限控制主要目的是提供传统的owner,group,other的read,wirte,execute权限之外的具体权限设置,可以针对单一使用者,单一档案或者目录来设置特定的权限。比如:某一目录权限为drwx------ 2 root root 4096 03-10 13:51./acldir用户u...

2017-09-27 01:41:00 76

转载 什么是正则表达式模式修正符?

1, 模式修正符就是几个字母,我们在每个正则表达式中可以一次使用一个,也可以连续使用多个,每一个具一定的意义。2, 模式修正符是对整个正则表达式调优使用,也可以说是对正则表达式功能的扩展。还记得正则表达式的那个公式吗?'/原子和元字符/模式修正符',其中正斜线为边界符。模式修正符的构成模式修正符就是字母,只不过这些在模式修正符的应用之中有特殊的含义。下面我来看看都有哪些模式修正符...

2017-09-22 15:40:00 101

转载 APUE ☞ 文件和目录

粘着位(Sticky Bit)S_ISVTX位被称为粘着位。如果一个可执行程序文件的这一位被设置了,程序第一次运行完之后,程序的正文部分的一个副本仍被保存在交换区(程序的正文部分是机器指令)。这使得下次执行该程序能更快的被载入内存。因为在通常的UNIX文件系统中,文件的各数据块很可能是随机存放的,相比较,交换区是被作为一个连续文件来处理的。现在较新的UNIX系统配置了虚拟存储系统以及...

2017-09-19 00:33:00 106

转载 《深入理解计算机系统》第二章 信息的表示和处理

2.1 信息存储一个字节占8个位,计算机中最小的可寻址的存储器单位。机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器。存储器的每个字节都由一个唯一的数字来标识,称为它的地址。所有这些可能的地址的集合称为虚拟地址空间。2.1.1 十六进制表示法十进制和十六进制之间的转换使用python脚本#! /usr/local/bin/python3#Created on...

2017-09-17 15:26:00 92

转载 shell中变量的测试与替换

在某些时刻我们经常需要判断某个变量是否存在,若变量存在则使用既有的设置,若变量不存在则给予一个常用的设置。(1) 变量未被设置或者内容为空,则替换为新的内容.new_var=${old_var-content}范例一:测试一下是否存在 username 这个变量,若不存在则给予 username 内容为 root[root@www ~]# echo $username ...

2017-09-17 13:13:00 109

转载 《深入理解计算机系统》第一章 计算机系统漫游

计算机系统漫游1.1 信息就是位+上下文基本思想:系统中所有的信息——包括磁盘文件、存储器中的程序、存储器中存放的用户数据以及网路上传送的数据,都是由一串位表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。1.2 程序被其他程序翻译成不同的格式一个hello.c文件到一个可执行目标文件hello,需经历4个阶段。预处理阶段:预处理相当于根据预处理命令组装成新...

2017-09-16 00:04:00 119

转载 《深入理解计算机系统》☞hello world背后的故事

一步到位的hello world首先一个简单的C语言版本的hello world例子,保存在文件hello.c中。#include <stdio.h>int main(){ printf("hello world\n");}一般而言,我们通常可以使用gcc命令将其转化为可执行程序gcc -o hello hello.c执行上面命令后,就会在当前目录...

2017-09-15 01:01:00 127

转载 Linux下运行《UNIX环境高级编程》undefined reference to `err_quit 编译出错的处理方法...

错误信息:: undefined reference to `err_quit': undefined reference to `err_sys'解决方法:因为err_quit跟err_sys是作者自己定义的错误处理函数。所以最简单的解决办法是修改下apue.h文件,如下/* * Our own header, to be included befor...

2017-09-12 00:27:00 691

转载 执行sudo命令时command not found的解决办法

问题的原因: 在编译sudo包的时候默认开启了- -with-secure-path选项。方法1: sudo vim /etc/sudoers,并在文件内增加这么一行:Defaults secure_path=”/bin:/usr/bin:/usr/local/bin:…”, 把要用的命令path包括进去。在非root下,可以执行很多命令。在root命令下,却提示 comm...

2017-09-11 23:57:00 2000

转载 CentOS7编译安装libc++和libc++abi

本文介绍了如何在CentOS 7中构建C++11构建环境Clang的定制C++库是libc++(libcxx)。然后,libcxx还需要一个ABI库,libc++abi(libcxxabi)。不幸的是,这两个库有一个循环依赖问题。为了打破循环依赖问题,可以在不连接libc++abi的情况下构建libc++。然后,使用这个libc++,我们可以构建libc++abi链接到libc+...

2017-09-09 22:56:00 1462

转载 CentOS 7 编译安装clang+llvm

天在CentOS上将最新版本的LLVM套件(LLVM,Clang和Libc++)编译安装好了,中间遇到了不少问题。虽然已经有很多博客介绍如何编译安装LLVM了,但是根据我自己亲身体验的情况来看,还是有地方需要注意的,也有东西值得跟大家分享一下。下面开始:首先从http://releases.llvm.org/download.html#4.0.1这边下载最新的版本。如果...

2017-09-09 22:19:00 755

转载 如何使用 Issue 管理软件项目?

软件开发(尤其是商业软件)离不开项目管理,Issue 是最通用的管理工具之一。转载于:https://www.cnblogs.com/BinBinStory/p/7475266.html

2017-09-04 19:54:00 124

空空如也

空空如也

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

TA关注的人

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