自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

halazi100

总结分享,共同进步

  • 博客(35)
  • 资源 (5)
  • 收藏
  • 关注

原创 Linux系统线程同步技术

线程同步技术    由于同一个进程内部的多进程共享进程的资源,因此可能出现共享数据的冲突;解决方案就是把有可能出现冲突的代码改成排队串行(部分串行);    这种技术叫线程同步技术,线程同步技术有很多种,Uc主要有三种    1.互斥量    2.信号量    3.条件变量    注意线程同步技术会大幅降低效率,因此要尽可能少用,但是如果有共享数据冲突的代码,一定要使用;尽

2015-08-25 20:15:36 390

原创 Linux系统编程多线程技术

线程    线程是轻量级的代码并行技术;线程不需要复制进程的资源,而是直接共享进程的资源;    线程只需要一个额外的栈就可以了;因此很多应用都是使用多线程技术;    主流的操作系统支持多进程,每个进程的内部支持多线程,线程可以嵌套;    JAVA语言中没有进程概念,因为Java本身是运行在虚拟机中的,而虚拟机本身就是一个进程;    大多数应用程序都是使用多线程;

2015-08-25 20:13:21 635

原创 Unix/Linux系统网络编程

网络编程网络常识//程序员需要知道关于网络的一些基本常识,最重要的是IP地址和端口;网络编程: TCP 和 UDP;    ISO/OSI七层协议模型=================================    7    应用层Application        ***    |    6    表现层Presentation        *** |//

2015-08-25 20:09:04 659

原创 Linux系统IPC进程间通信

IPC    进程间通信(两个/多个进程数据交互);    了解:信号应用中的计时器;用指定的初始间隔和重复间隔时间为进程设定号一个计时器后,该计时器就会定时的向进程发送时钟信号;Linux为每个进程维护3个计时器,分别是    真实计时器SIGALRM        计算程序运行的实际时间;    虚拟计时器SIGVTALRM        计算程序在用户态时

2015-08-25 20:03:41 813

原创 Linux系统信号管理相关操作函数

Unix信号管理    信号(signal)    Unix系统中,用信号实现软件中断;    Ctrl+C        ->SIGINT    段错误        ->SIGSEGV    总线错误    ->SIGBUS    浮点数例外    ->SIGFPE    终端关闭    ->SIGHUP    定时到期    ->SIGALARM    C

2015-08-25 19:58:17 497

原创 Linux系统进程管理及相关操作函数

Unix进程的启动顺序    系统启动进程0,进程0只负责启动进程1(init进程)或启动进程1和进程2;    其他进程都是由进程1或进程2启动的;Unix用进程的PID标识进程,PID的本质就是一个整数;每个进程都有一个唯一的进程ID(PID),在同一时刻进程的PID不会重复;进程的PID可以延时重用;几个常用函数    getpid()    取当前进程的PID

2015-08-25 19:54:53 556

原创 Linux文件系统文件属性及目录操作函数

void*是万能指针,可以转换成其他任意类型的指针;int stat(const char *path, struct stat *buf);//不需要打开文件int fstat(int fd, struct stat *buf);//需要open后获取fdint lstat(const char *path, struct stat *buf);//操作软链接文件stru

2015-08-25 19:47:54 776

原创 Linux文件系统及相关操作函数

文件系统文件系统的基本概念    1.在Unix操作系统中,每个文件以一个或多个数据块离散的存放在磁盘的块表区中(柱面表区);    2.一个文件的每个数据块的存储位置保存在I节点(i-node)中;    3.对应系统中多个文件的I节点保存在磁盘的I节点表中,每个I节点通过一个下标唯一地标识,这个下标称为I节点号;    4.文件的名称和其所对应的I节点号保存在目录文件中;

2015-08-25 19:41:11 817

原创 Linux系统内存管理及相关操作函数

堆内存的管理(程序员全权负责)malloc()和free();    C程序员分配和回收内存的工具;malloc()在Unix系统中一次映射33个内存页,如果申请的内存比较大(达到32个内存页),系统会映射出比用户申请的内存稍大的内存页数;牺牲空间换时间;int *pi = malloc(4);//malloc(16);free(pi);//free()如何知道释放多少空间

2015-08-24 19:42:01 617

原创 Unix/Linux的内存管理

1.内存分配和回收的相关函数    STL容器->自动分配和自动回收;    |    C++语言->new/delete;/*不是函数,没有括号,是操作符;*/    |    C语言->malloc()/free();    |    Unix系统函数->sbrk()/brk();/*都可以自动分配和自动回收;*/    |    Unix系统函数->mma

2015-08-24 19:38:40 620

原创 Linux系统C语言操作环境变量的函数

C语言操作环境变量的函数系统提供了很多关于环境表和环境变量的函数;    getenv()    按环境变量的名取得环境变量的值;返回指向name关联的value的指针;    putenv()/setenv()    设置环境变量;        //区别:putenv()参数格式"name=value",setenv()是三个参数(分开),putenv()一定会替换已经存在

2015-08-24 19:36:40 1488

原创 Linux系统C程序员的环境变量和环境表

C程序员的环境变量和环境表    C语言中环境存储在字符指针数组中,就是环境表;    环境表可以看成是二级指针,用来指定环境变量;char *s[5];    //字符指针数组,元素是字符指针;char **s;    //二级指针环境表的使用只需要写上 extern char**  environ;    //外部全局变量environ就是环境表的首地址;e

2015-08-24 19:35:06 1169

原创 Linux系统程序员的错误处理

程序员的错误处理要把正确的搞定,也要把错误的搞定,还要防止别人有意无意的破坏;主流的编程语言(除了C语言外)基本都使用异常机制处理错误,C语言中没有异常机制;C程序员是用返回值代表是否出错,主要有以下4种情况:    1.如果返回类型是 int(如主函数/随机数等),并且返回值不可能是负数,正常数据会直接返回,用返回-1代表出错(如返回数组下标>=0);    2.如果返回类型

2015-08-24 19:33:59 413

原创 Linux系统编程静态库和共享库

windows下的dll即是动态链接库;Linux中叫共享库;企业开发经常会把程序打包成一个库文件,进行整合和管理;库分为:    静态库和共享库(又称动态库);    库是.o文件的打包;"静态库"是代码的归档,在编译连接时会"复制"这段代码到目标文件中;    //优点是独立,连接完成后就不再需要静态库,而且速度会稍快;    //缺点是占用空间太大,修改和维护不方

2015-08-24 19:32:09 655

原创 Linux系统环境变量

环境变量:    操作系统在启动时会把一些常用的东西预先加载到内存中,就是环境变量;    我们的Linux命令可以直接使用而不需要使用路径,是因为开机启动时已经被加载到PATH环境变量了;比如:    可执行文件默认是要带路径的,但如果把它的路径配置在环境变量PATH中,就可以不带路径在任意目录下直接用文件名启动; //有利有弊    我们执行程序是使用./a.out是因为.

2015-08-24 19:30:56 490

原创 Linux系统gcc编译指令

Unix操作系统是美国AT&T公司于1971年在PDP-11上运行的操作系统;具有多用户多任务的特点,支持多种处理器架构,最早与1969年在AT&T的贝尔实验室开发;贝尔实验室还研发了C语言;Unix的三大派生版本 System V AIX / Solaris / HP-UX / IRIX Berkley FreeBSD / NetB

2015-08-24 19:29:47 979

原创 数据结构与算法-大数据排序

练习1;    0-1999的随机数1000个,已知无重复,求最快排序算法;     答案:        利用数组下标;        1-> 定义一个长度是2000的数组arr,清0;         2-> 遍历1000个随机数,arr[随机数] = 1;        3-> 打印值是1的数组下标就ok; 练习2:    一个文件中包含n个正整数,其中n=1

2015-08-24 19:27:15 568

原创 数据结构与算法-归并排序

归并排序    假设所有数字分成前后两组,每组都是已经排好序的;则归并排序可以把他们合并成一个新的数字序列; 思路    使用递归调用对前后两组分别进行排序;    将两个有序的序列合并为一组有序的序列;    首先考虑下如何将将二个有序数列合并;这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数;然后再进行比较,如果有数列为空,那直接将另

2015-08-24 19:22:23 443

原创 数据结构与算法-快速排序

快速排序    重点+难点    每次选一个基准数字放在合适的位置上同时把所有数字分成两组,其中一组中的数字都比基准数字小,另一组中的数字都比基准数字大;    基准数字通常选未处理数字中的第一个数字,一趟排序后得到基准数字和左右两边的两组数字,其中一组都比基准数字小,另一组都比基准数字大,然后使用递归处理这两组数字;    每次要保证把所有未处理过的数字包括在基准数字和下一个要处

2015-08-24 19:21:17 305

原创 数据结构与算法-插入排序

插入排序(打麻将起牌时把后来的放到合适位置)    每次把一个位置上的数据插入到前边已排好的数字中某个合适的位置上形成一个新的已排序的数字序列;    重复这个操作直到所有数字都插入进去为止;     采用双重循环实现;    外循环的循环变量从第二个位置开始到最后一个位置为止,内循环的循环变量从外循环变量-1开始到0为止;在内循环中对内循环变量和它后面的变量中的数字进行顺序调整;

2015-08-24 19:19:28 367

原创 数据结构与算法-选择排序

选择排序(按个子高低排座位)    模拟人的思维方式;    每次选定一个位置,用这个位置上的数字和所有其他位置上的数字比较并调整顺序;    然后换一个位置重复上面的操作直到所有数字的顺序都调整好;    采用双重循环实现;    外层循环的循环变量从第一个位置到倒数第二个位置,内层循环的循环变量从外循环的变量+1到最后一个位置;内循环内部对两个循环变量对应位置的数字进行处理

2015-08-24 19:18:31 324

原创 数据结构与算法-冒泡排序

算法    广义的说,为解决一个问题而采取的操作方法和操作步骤,就称为算法;计算机算法可分为两大类别    1->    数据运算算法    2->    非数值运算算法;在写程序之前,必须想清楚做什么和怎么做;    做什么是任务;    怎么做包括两方面的内容        一是要做哪些事情才能达到解决问题的目的;        二是要决定做这些事情的先后次

2015-08-24 19:17:49 377

原创 数据结构与算法-二叉树

二叉树树也是一种链式存储结构,从树中的每个节点可以走到另外多个节点;如果树中的所有节点都最多只能走到另外两个节点则这个树叫二叉树;所有的树都可以转换成二叉树;所有树都从一个起点节点开始,这个起点节点叫做根节点;通常使用一个记录根节点地址的指针记录整棵树,这个指针叫根指针;

2015-08-24 19:16:09 294

原创 数据结构与算法-链表

链表    包含一个线性链式存储结构和一组相关的操作函数;    链表的基本功能包括:插入/删除和遍历;/* * 04linklist.h */#ifndef __04LINKLIST_H__#define __04LIKKLIST_H__typedef struct node{    int num;    struct node *p_next;}

2015-08-24 19:15:08 294

原创 数据结构与算法-队列

队列    采用先进先出的方式管理数据;    基本操作:push,pop    放置数字和取数字是在两个不同的端点实现的;    采用顺序存储结构实现队列时需要记录两个端点的位置;/* * 02queue.h */#ifndef __02QUEUE_H__#define __02QUEUE_H__void init();void deinit();

2015-08-24 19:14:25 318

原创 数据结构与算法基础1

数据结构逻辑结构物理结构栈数据结构是对数据类型(存储方式)和数据之间相互关系的描述;算法是对操作步骤的描述;数据结构研究如何使用内存中的多个存储位置记录多个相关数据以及如何使用这些数据;算法研究一些通用问题的解决方法和步骤(算法通常需要依赖某种数据结构); 数据结构重点关注数据之间的关系; 数据的逻辑结构描述了人对数据之间关系的看法和认识,这个结构和

2015-08-24 19:13:03 398

原创 Vim复制粘贴与寄存器

Vim复制粘贴与寄存器在Vim中的复制,删除,替换等操作的临时内容,都会存储在寄存器中1.无名寄存器("")两个双引号,Vim中叫做无名寄存器。x,s,d,c,y等操作,如果不指定寄存器,都是将临时内容放到这个寄存器中,也就是相当于一个默认寄存器。可以通过 :reg 来查看当前寄存器的值,操作一下,然后查寄存器内容,就明白了。例如:复制当前行(yy),并粘贴(p)。

2015-08-20 14:07:50 3475

转载 如何在Linux下使用Markdown进行文档工作

自从使用了markdown,做文档工作就很顺手。我几乎将工作中所有的文档工作都用markdown来完成。最近有了一些新的体验,也发现了一些新的问题。在Linux系统中,编辑markdown可以用retext工具:# Debian/Ubuntusudo apt-get install retext# 编辑文件使用以下命令retext Release-Notes.md要将mark

2015-08-19 18:47:50 591

转载 Linux Makefile

跟我一起写 Makefile概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己

2015-08-19 13:30:34 448

转载 git内部原理

git内部原理    首先要明白一点,从根本上来讲git是一套内容寻址(content-addressable)文件系统,在此之上提供了一个VCS用户界面;    早期的git(1.5 之前版本)的用户界面要比现在复杂得多,这是因为它更侧重于成为文件系统而不是一套更精致的VCS;    最近几年改进了UI从而使它跟其他任何系统一样清晰易用;即便如此,还是经常会有一些陈腔滥调提到早期gi

2015-08-15 17:08:18 653

原创 解决windows下vim的中文出现乱码

解决windows下vim的中文出现乱码如:文件显示乱码、菜单乱码、右键菜单乱码、conlse输出乱码、文件关联右键菜单乱码等等。解决:_vimrc下增添以下内容"""""""""""""""""""""""""""""" vim7.1在windows下的编码设置。"""""""""""""""""""""""""""""set encoding=utf-8set

2015-08-11 15:48:21 485

原创 解决windows gitk显示文件内容中文乱码

解决gitk显示文件内容中文乱码在%git%\etc\gitconfig文件末尾添加:[gui]  encoding = utf-8[i18n]  commitencoding = {utf-8|gbk}

2015-08-11 15:37:30 3079 3

原创 git版本控制

/* *Git version control *Author: longbin  *Released Date: 2015-08-08 *Last Modified: 2015-08-18 */ 1 Install git and gitk        sudoapt-get install git-core gitk ##ubuntu        sud

2015-08-11 15:09:51 1755

原创 Linux用户管理实战

1 Add a user named Mike First, change to root and use the command # useradd -m -s /bin/bash Mike -m create user's home directory; -s appoints user's shell type, such

2015-08-06 15:05:41 530

原创 CentOS 6.x安装配置嵌入式软件开发环境

安装centos后,(请先参考centos yum源配置http://blog.csdn.net/halazi100/article/details/41311837,然后继续)保存下面文件并执行即可,如有问题请看作者页面联系方式欢迎进群讨论;#! /bin/bash# Author: longbin # Created Date: 2014-06-24# Release Vers

2015-08-01 12:10:25 1027

AnalysePlugin-v1.12-R43-all.zip for notepad++

Features Filtering log files It is designed to treat log-files of typical size like 60MB. More features can be found in the help dialogue of the plugin. https://sourceforge.net/projects/analyseplugin/

2020-02-11

vim使用入门进阶教程

文本编辑器概述 vi编辑器简介 模式切换与使用 基本操作命令 高级功能及其他选项 配置 插件使用 文本编辑器概述 vi编辑器简介 模式切换与使用 基本操作命令 高级功能及其他选项 配置 插件使用

2015-10-30

linux应用基础学习笔记

该文献为本人自学Linux所整理笔记,可任由传播复制以承Linux开源精神,特此声明。 该文献为本人自学Linux所整理笔记,可任由传播复制以承Linux开源精神,特此声明。 该文献为本人自学Linux所整理笔记,可任由传播复制以承Linux开源精神,特此声明。

2015-10-30

git-2.6.1-32bit

git是一个功能强大的分布式版本管理系统

2015-10-12

vim完全配置包括配置文档及plugins,解压到适当位置即可

vim完全配置,包括配置文档及plugins,解压到适当位置即可;

2015-10-12

空空如也

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

TA关注的人

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