自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(43)
  • 收藏
  • 关注

原创 Linux dup如何跟pipe联合在进程间传递数据

标准输入的文件描述符总是0,dup返回的新文件描述符总是使用最小可用的数字。因此,如果我们首先关闭文件描述符0,然后调用dup,那么新文件描述符就将是数字0.因为新的文件描述符是复制一个已有的文件描述符,所以标准输入就会改为指向一个我们传递给dup函数的文件描述符所对应的文件或管道。我们创建了两个文件描述符,它们指向同一个文件或管道,而且其中之一便是标准输入。示例代码:

2013-08-23 15:07:48 782

原创 Linux dbm数据库代码示例

所有版本的Linux及大多数的UNIX版本都随系统带有一个基本的,却非常高效的数据存储例程集,它被称为dbm数据库。它适合于存储相对比较静态的索引化数据。dbm数据库可以使用索引来存储可变长的数据结构,然后通过index或顺序扫描数据库来检索结构,dbm数据库适用于那些被频繁访问却很少被更新的数据,因为它创建数据项时非常慢,而检索数据却是非常的快。大多数主流的Linux发行版本都会默认安装

2013-07-29 11:43:02 903

原创 命名信号量跟系统共享内存

共享内存是最快的可用IPC形式:它允许多个不相关的Process去访问同一部分逻辑内存。如果需要在两个运行的Process之间传输数据,共享内存跟FIFO(命名管道),文件共享文件相比是效率极高的一种方法。一旦内存区映射到共享它的Process的地址空间,这些Process间的数据传递就不会再涉及到内核,这样可以减少系统调用时间,提高了效率。共享内存是IPC为一个进程创

2013-06-24 15:17:59 561

原创 如何将自己的功能函数添加给linux系统

突然间想到一个问题:自己写一个功能函数,比如闹铃,给其响的时间是某一时刻,每天系统开启后让系统自己调用闹铃功能,到响铃时自动响铃,对其他的任何系统功能不造成影响,怎么办。        然后就随便写了一个函数测试了一下:#include int main(void){    while( 1 );        return 0;}又写了一脚本hai

2013-06-17 16:55:59 399

原创 linux目录文件的遍历查询

函数:int chdir( const char *path );         /* 切换目录为path */char *getcwd( char *Buf, size_t size );     /* 将当前路径及目录的信息写道Buf */Dir * opendir( const char *name );  /* 打开名为name的目录流 */struct

2013-06-07 11:30:56 357

原创 linux文件

linux用户空间的每一个进程开启后都会有自己的一个文件描述符索引表,进程开启后同时会打开三个文件:标准输入,标准输出,标准出错,这三个文件分别对应文件描述符索引表的0,1,2所以我们自己打开的文件返回的文件描述符是3以后的值,要说的是每个进程的文件描述符的个数是有限的,所以一味的打开文件而不关闭会出问题。在linux的内核空间对应用户空间的所有打开的文件有一个打开文件的记录表,该记录

2013-06-06 14:48:18 309

原创 Linux时间函数总结

标准C定义常见几种时间结构,分别用于不同的场合—— clock_t;  /* CPU滴答数来表示计时数 */—— time_t;    /* 描述表示时间 */—— struct tm;   /* 按人的习惯表达计时 */—— struct timeval;   /* 时间戳,对时间要求较高的场合 */clock_t, time_t 实际上是long int型,主要用于

2013-06-06 11:46:13 328

转载 H.264编码的NAL单元解析

h.264layerextension数据结构stream扩展nal_unit_typeNAL 单元和 RBSP 语法结构的内容  0未指定 1一个非IDR图像的编码条带 slice_layer_without_partitioning_rbsp( ) 2编码条带数据分割块A slice_data_pa

2013-06-04 15:34:46 560

原创 C语言常见算法——链表逆序

/*************************************************************************    > File Name: ReviseList.c    > Author: hai--feng    > Mail: [email protected]     > Created Time: Tue 26 Mar 2013 08

2013-04-16 08:44:52 336

原创 C语言常见算法——求大数阶乘!

注意点:1 是大数的阶乘2 注意会溢出/*************************************************************************    > File Name: Factorial.c    > Author: hai--feng    > Mail: [email protected]     > Created

2013-04-15 09:41:55 409

转载 minicom 的配置

1、在使用minicom之前,首先要保证你对串口有读/写的权限。我们知道,Linux的设备对应于/dev/目录中的某个文件,串口COM1对应ttyS0,COM2对应ttyS1,使用以下命令来查看你对COM1的权限:$ ls -l /dev/ttyS0crw-rw---- 1 root dialout 4, 64 2009-08-01 11:05 /dev/ttyS0可以看到,它的属主是

2012-09-11 18:13:16 281

原创 Makefile 的简单简化

学习了一下Makefile,结果让我很惊叹!!太智能了!!以下就是介绍:          就拿一个例子来介绍:     有一个小项目,有七个文件组成,4个.c文件,3个.h文件     afile.c  bfile.c  bfile.h  cfile.c   cfile.h   dfile.c   dfile.h          第一个Makefile的写法:

2012-08-23 18:06:33 410

原创 DM365 YUV422与YUV420 的resize对比

YUV422的resize较为彻底,它提供了一次性的将要resize的YUV数据resize的功能,所以流程较为简单,具体过程为:1、ResizeCreate2、ResizeConfig3、ResizeExecute4、ResizeDelete例:色彩空间:YUV422 ----> YUV420       分辨率:7

2012-08-10 10:39:04 1623

原创 ubuntu samba服务的安装与配置

安装samba服务时发现自己忘记了!所以网上搜了一大堆,结果没有一个正常通过的!安装可想而知,所以搜寻了老久才找出了自己之前做的记录, 呵呵呵呵!!还是比较好使!!特此记录!!      一.  samba 的安装:        导入samba 四步骤:                  #sudo apt-get install samba          #sudo

2012-07-31 09:28:56 247

原创 DM365 resize的实现

DM365的encode 视频数据在编码之前可进行 resize,可将videoStd 为VideoStd_D1_PAL,ColorSpace为ColorSpace_UYVY的视频图片resize成为videoStd 为VideoStd_VGA,ColorSpace为ColorSpace_YUV420PSEMI的图片。测试了一下,当前DM365的resize有:    /*ColorS

2012-07-30 18:47:26 1545

原创 Linux 下串口编程

相关头文件:#include 串口帧格式:  1.   打开串口       int  open(const  char * pathname, int flags);    linux 下串口文件位于 /dev 下,一般串口一为 /dev/ttys0 ,串口二为 /dev/ttys1    示例代码如下:    int  fd;    /* 以

2012-07-23 11:40:36 327

转载 入门视频采集与处理(BT656简介)

转自: http://ticktick.blog.51cto.com/823160/553535      凡是做模拟信号采集的,很少不涉及BT.656标准的,因为常见的模拟视频信号采集芯片都支持输出BT.656的数字信号,那么,BT.656到底是何种格式呢?      本文将主要介绍 标准的 8bit BT656(4:2:2)YCbCr SDTV(标清) 数字视频信号格式,主要针对刚刚入

2012-07-18 14:45:18 483

转载 为什么要使用RTP

转自:http://ticktick.blog.51cto.com/823160/462746一提到流媒体传输、一谈到什么视频监控、视频会议、语音电话(VOIP),都离不开RTP协议的应用,但当大家都根据经验或者别人的应用而选择RTP协议的时候,你可曾想过,为什么我们要使用RTP来进行流媒体的传输呢?为什么我们一定要用RTP?难道TCP、UDP或者其他的网络协议不能达到我们的要求么?本

2012-07-18 12:05:25 411

转载 谈谈RTP传输中的负载类型和时间戳

转载自 : http://ticktick.blog.51cto.com/823160/350142    最近被RTP的负载类型和时间戳搞郁闷了,一个问题调试了近一周,终于圆满解决,回头看看,发现其实主要原因还是自己没有真正地搞清楚RTP协议中负载类型和时间戳的含义。虽然做RTP传输,有着Jrtplib和Ortp这两个强大的库支持,一个是c++接口,一个是c语言接口,各有各的特点,各有各

2012-07-18 12:03:39 577

转载 软件中的缓冲区管理

转载自:http://ticktick.blog.51cto.com/823160/2731331. 前言        什么是缓冲区管理策略?为什么要使用缓冲区管理策点击打开链接略,这里首先引用几段《生产者/消费者模式》(原文链接:http://blog.csdn.net/program_think/archive/2009/03/25/4022087.aspx)中的文字作为引子吧。

2012-07-18 12:00:08 399

转载 IP数据包的分析实例

转自: http://ticktick.blog.51cto.com/823160/203412    我们知道,使用 Ethereal软件可以方便地帮助我们进行抓取网络中的数据包,具体怎样利用它分析一个特定的包呢?我在网上找了半天,发现相关的分析IP包的文章很少,在此,我将自己在学习使用该软件抓取IP包并分析的过程描述如下,供初学者入门之用,有分析不对的地方欢迎指正。最后附上简单

2012-07-18 11:41:03 439

转载 入门视频采集与处理(学会分析YUV数据)

转载自: http://ticktick.blog.51cto.com/823160/555791    做视频采集与处理,自然少不了要学会分析YUV数据。因为从采集的角度来说,一般的视频采集芯片输出的码流一般都是YUV数据流的形式,而从视频处理(例如H.264、MPEG视频编解码)的角度来说,也是在原始YUV码流进行编码和解析,所以,了解如何分析YUV数据流对于做视频领域的人而言,至

2012-07-18 11:04:49 736

原创 YUV420SP数据转换成YUV420P代码

数据存储方式:YYYYYYYYYYYYY                                YYYYYYYYYYYYYYYYYYYYYYYYYY               -->            YYYYYYYYYYYYYCbCrCbCr ....                                           CbCb...CrCr

2012-07-18 10:40:25 2086

原创 C++ 一个典型的数组类的模板

//错误类型enum ErrorType {    invalidArrySize,    memoryAllocationError,    indexOutOfRange};//错误信息char * errMsg[] = {    "Invalid array size",    "Memory allocation error",

2012-07-10 17:33:54 394

原创 对于C++ const 修饰指针的思考

1  char str[ ] = "welcome!!";  const char  * p  = str; 对于上述const 标识,很多人的理解是const 修饰的是指针指向的内容,说明指针指向的内容不可以被修改,我觉得这样的理解多少有点偏差跟不正确的地方。试想,如果内容不可以被修改,那么我在后面加一句话 str[ 0 ] = 'A';这是正确的,但是

2012-07-10 17:06:15 247

1  char str[ ] = "welcome!!";  const char  * p  = str; 对于上述const 标识,很多人的理解是const 修饰的是指针指向的内容,说明指针指向的内容不可以被修改,我觉得这样的理解多少有点偏差跟不正确的地方。试想,如果内容不可以被修改,那么我在后面加一句话 str[ 0 ] = 'A';这是正确的,但是

2012-07-10 17:05:28 45

原创 对于C++ const 修饰指针的思考

1  char str[ ] = "welcome!!";  const char  * p  = str; 对于上述const 标识,很多人的理解是const 修饰的是指针指向的内容,说明指针指向的内容不可以被修改,我觉得这样的理解多少有点偏差跟不正确的地方。试想,如果内容不可以被修改,那么我在后面加一句话 str[ 0 ] = 'A';这是正确的,但是

2012-07-04 16:50:34 57

原创 单链表常见算法要求

1.单链表反转  2.找出单链表的倒数第4个元素  3.找出单链表的中间元素  4.删除无头单链表的一个节点  5.两个不交叉的有序链表的合并  6.有个二级单链表,其中每个元素都含有一个指向一个单链表的指针。写程序把这个二级链表称一级单链表。  7.单链表交换任意两个元素(不包括表头)  8.判断单链表是否有环?如何找到环的“起始”点?如何知道环的长度?  9.判

2012-07-03 16:40:30 248

转载 程序员每年要做的十件事

1、学习一种新语言,框架或方法我们必须保持学习最新的技术。Web开发唯一不变的是变化。以NodeJS为例:两三年前它并不存在,只有很少(如果有的话)的JavaScript代码运行于服务器之上。现在,你离不开它。每个Web开发人员都希望留在自己的作品里。要做到这一点,我们必须不停学习最新的技术。如果你是一个后端开发,这可能代表着学习 JavaScript和Node.js,类似于Ruby和

2012-07-03 10:23:43 265

原创 C++ 练习如何用递归求π的值

π 的计算公式为 16 * arctan(1/5) - 4 * arctan(1/239);arctan(x) 的计算公式为 x - x^3/3 + x^5/5 -x^7/7 + ......直到级数的某项绝对值不大于 10^(-15) 为止,π 跟 x 均为 double 型递归代码如下:/*****************************************

2012-07-02 15:42:17 1644

原创 C语言面试题之——判断一条单链表有没有环

给一条链表,判断有没有环。     分析:如果一条链表没环,那么它的尾节点的next比为NULL,否则就有环。那么给一条链表的时候如何判断有没有环呢,办法是定义两个指针,一个跑的快,一个跑的慢,如果快的指针走的结果为NULL,那么就是一个无环链表,否则快的指针肯定在某一个节点处追上慢的指针,这时候就会断定这条链表有环。    代码如下:/********************

2012-06-28 09:04:35 1628

原创 C跟C++文件互相调用的时候该怎么做!!

下午编译代码时总结出来了一点好东西,在此记录一下。当自己写的C文件要掉用C++的头文件的时候要进行如下修改:将.c文件中包含的.cpp文件的头文件由#include “Cpp.h”修改为#ifdef  __cplusplus     extern "C"     {#endif     #include "Cpp.h"     #ifdef __cplu

2012-06-26 16:11:53 267

原创 C语言面试题之——整数数组中获取第二大的数

第二大的数获取路径有两条:    1   从最大数传下来    2   直接赋值得到(当前数比最大值小,比当前的第二大数大)代码如下:/*************************************************************************    > File Name: second_max.c    > Author: hai-

2012-06-25 18:13:47 1929

原创 C语言面试题之——翻转语句

给一句话,在不改变单词的情况下将这句话倒着输出,如 :    give me    the book    ----->    book the    me give   注意语句中的空格。代码如下:/*************************************************************************    > File Name: s

2012-06-25 17:29:19 342

原创 对于C++的虚函数跟多态记录

概括的说多态就是“一个接口,多种方法”。        多态分为两种:                一、静态多态性(静态联编):程序调用函数的时候,具体使用哪个代码块由编译器已经决定了。这种在编译过程中就完成的联编叫静态联编。                        函数重载、派生类方法的重写、模版函数都属于静态联编。                二、编译器无法在编译过程

2012-06-11 14:43:19 186

原创 ssh使用说明

1、概述     ssh主要用于远程控制和传输文件,与ftp、tftp、telnet的区别在与ssh传输的数据是加密的,安全性很好。     ssh 分为客户端和服务器端,认证的方式分为key和密码     现在使用比较广泛的是openssh,源于openbsd,另外一个dropbear主要用在嵌入式中。Android采用的就是dropbear。2、安装     linux

2012-06-04 16:17:16 403

原创 如何安装wine跟WineTricks将你的windows下的库安装到linux

一 wine 安装额外windows库的方法       工作平台刚转到linux下面后会有很多的不方便,因为linux对于windows大部分软件库的不支持,结果是大家都知道的——很多软件不能使用,这 是大家非常的头疼,但是有一个方法可以部分的解决这个问题,为什么是部分的,因为linux 对于windows只有部分库提供了一个接口,而非全部。       给linux安装window

2012-06-04 16:15:28 4031

转载 强大Vim的配额置

我的vim配置主要有以下优点:1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码4.按“F2”可以直接消除代码中的空行5.“F3”可列出当

2012-06-04 16:03:32 789

原创 **在pc上如何让打印信息精确的告诉你问题的发生点**

刚刚才发现PTrace函数是一个让人求之不得的函数,他对我的帮助简直不能言语:PTrace函数的格式为:        PTrace("%s--%d: %s", __FILE__, __LINE__, "init_sell_file failed!\n");参数:       第一个%s表示你运行的文件存放路径跟文件名       %d表示出错的位置,即出错文件的错误地址,哪一

2012-04-19 22:37:23 83

原创 如何使用伪指令让结构体占用的内存空间变小

在我们定义一个结构体后,因为存在字节对齐的缘故,所以会有资源浪费的情况,比如typedef struct{     int age;     char sex;     int number;}student_t;因为字节对齐的缘故,这样这个结构体的变量会占12个字节的空间,虽然sex变量是一个char型,但还是会按int型的空间处理,为了解决这个问题,我们可以将这

2012-04-19 22:20:24 372

空空如也

空空如也

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

TA关注的人

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