2. Linux C/C++(系统开发)
压屏哥
linux开发
系统维护
网店优化
展开
-
IP校验和详解
以前一直只知道IP校验和算法反码求和相关的,但具体细节不清楚,今天了解了下。 IP校验和主要是用来保证数据(IP包头)的完整性的.它用的算法非常简单,就是反码求和校验.需要注意的是反码求和又叫1的补码(ones complement),而2的补码就是我们通常说的补码求和了.校验算法具体如下.1、发送方 i)将校验和字段置为0,然后将IP包头按16比特分成多个单元,如包头长原创 2009-08-02 22:55:00 · 534 阅读 · 0 评论 -
短信7bit编解码
/* 7bit编码 输入: pSrc - 源字符串指针 nSrcLength - 源字符串长度 输出: pDst - 目标编码串指针 返回: 目标编码串长度 */ int gsmEncode7bit(const char* pSrc, unsigned char*原创 2011-06-07 08:58:00 · 1490 阅读 · 0 评论 -
彩信uintvar编解码
/*uintvar 编码*/int encodeUintvar(int data, char *pUintVar, int *iUintVarLen){ char reversed[8]={0}; char tmp; int i = 0; reversed[i]=(char)data & 0x7f; // The lowest data = data >> 7原创 2011-06-07 09:06:00 · 2069 阅读 · 1 评论 -
内存越界和内存泄漏的调试工具
用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。 Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行原创 2009-09-18 17:09:00 · 1350 阅读 · 0 评论 -
linux 守护程序
#include #include #include #include #include #include #include #include #include #include #define PROC_NAME "mymail"#define EXEC_NAME "/root/dev_mobile/source/MyMail/src/mymail"#define LOCKF原创 2009-09-17 18:35:00 · 573 阅读 · 0 评论 -
ar和nm命令的使用
当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍两个命令ar和nm,用来对库操作。 当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍两个命令ar和nm,用来对库操作。 1、原创 2009-08-18 10:45:00 · 438 阅读 · 0 评论 -
文件操作函数全集 Linux C(流式 I/O)
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:typedef struct {int level; /* fill/empty level of buffer */unsigned flags;原创 2009-08-20 10:05:00 · 4280 阅读 · 1 评论 -
linux消息队列
基本概念1.队列 队列是信息的线性表,它的访问次序是先进先出(FIFO)。也就是说,置入队列中的第一个数据项将是从队列中第一次读出的数据项,置入的第二项将是读出的第二项,依此类推。这是队列允许的唯一存取操作,其它随机访问是不允许的。这种数据结构保证对数据资源的请求将严格按照先后顺序进行,因而可用于对事件的调度并起到I/O缓冲的作用。2.报文 发送进程原创 2009-08-13 17:48:00 · 1036 阅读 · 0 评论 -
strcpy 使用
代码1:#include #include main() { char *buf; char *string= "hello "; buf=string; printf( "%s/n ",buf); strcpy(buf, "ok "); printf( "buf=%s ",buf); } 代码2:#include #include main() { c原创 2009-08-09 13:26:00 · 813 阅读 · 0 评论 -
memset ,memcpy 和strcpy 的根本区别?
Memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;例:char a[100];memset(a, /0, sizeof(a)); memset可以方便的清空一个结构类型的变量或数组。 如:struct sample_struct{ char csName[16]; int iSeq; int iTy原创 2009-08-09 13:47:00 · 470 阅读 · 0 评论 -
Linux下C语言编程--进程通信、消息管理
前言:Linux下的进程通信(IPC) Linux下的进程通信(IPC) 1.POSIX无名信号量 2.System V信号量 3.System V消息队列 4.System V共享内存 -------------------------------------------------------------------------------- 1。POSIX转载 2009-08-03 14:44:00 · 494 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(static): 全局变量和静态变量的存储原创 2009-08-02 22:02:00 · 335 阅读 · 0 评论 -
Linux下C语言编程--信号处理函数
前言:这一章我们讨论一下Linux下的信号处理函数. Linux下的信号处理函数: 1.信号的产生 2.信号的处理 3.其它信号函数 -------------------------------------------------------------------------------- 一个实例 1。信号的产生 Linux下的信号可以类比于DOS下的INT或原创 2009-08-03 15:01:00 · 526 阅读 · 0 评论 -
Linux下C语言编程--进程的创建
前言: 这篇文章是用来介绍在Linux下和进程相关的各个概念.我们将会学到: 1.进程的概念 2.进程的身份 3.进程的创建 4.守护进程的创建 -------------------------------------------------------------------------------- 1。进程的概念 Linux操作系统是面向多用户的.在同一时间可转载 2009-08-03 14:57:00 · 663 阅读 · 0 评论 -
使用gcc和 gdb,调试程序
GCC使用在使用GCC编译程序时,编译过程可以被细分为四个阶段:预处理(Pre-Processing)编译(Compiling)汇编(Assembling)链接(Linking)。例如: #include int main(void){ printf ("Hello world, Linux programming!/n");原创 2009-08-02 14:50:00 · 503 阅读 · 0 评论 -
Linux下C语言编程--文件的操作
前言: 我们在这一节将要讨论linux下文件操作的各个函数. 1.文件的创建和读写 2.文件的各个属性 3.目录文件的操作 4.管道文件 -------------------------------------------------------------------------------- 1。文件的创建和读写 我假设你已经知道了标准级的文件操原创 2009-08-03 14:59:00 · 379 阅读 · 0 评论 -
Linux下C语言编程--基础知识
前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助 -------------------------------------------------------------------------------- 1.源程序的编原创 2009-08-03 14:56:00 · 519 阅读 · 0 评论 -
Linux源代码查看工具
a. Windows系统可以用Source Insight,Linux系统可以用Source Navigator。 b. vim或emacs编辑器,配合cscope、ctags、etags等交叉索引工具。 c. vim或emacs编辑器,配合grep、egrep等文本搜索工具,不过最好要对源代码目录结构有所熟悉 d. LXR,以网页的形式通过浏览器浏览,安装复杂(debian下安装容易,原创 2009-08-03 12:17:00 · 863 阅读 · 0 评论 -
嵌入式声卡驱动模块的编译和移植
内核ban2.6.35.7转载 2014-04-17 09:10:54 · 3897 阅读 · 0 评论