- 博客(68)
- 资源 (3)
- 收藏
- 关注
翻译 my_itoa
void _my_itoa(CHAR_T * desString , const unsigned int srcNum, const int arry_len){ int num_len = 0; unsigned int tempNum = srcNum ; unsigned int tempNum_l = src
2011-12-14 12:13:01
600
转载 想成为编程高手,从基础做起
很多人想成为编程高手,但是常常他们太急功近利了,经常误入歧途。其实编程的路是不平坦的,你会遇到很多的困难。而这些困难很多情况下是需要你一个人解决的。所有你需要一个准备。当然,我的话可能说得重了点,会吓退一些人。但是只要你有强烈的兴趣,一切都不是问题。下面我就想谈谈我的看法: (1)关于语言,有人喜欢C,有人喜欢Java,还有人喜欢Delphi。这些都不是问题,问题是你是否真正明白它们的思
2011-12-06 15:20:23
645
转载 序点
序点:什么是序点?简而言之,序点就是这么一个位置,在它之前所有的副作用已经发生,在它之后的所有副作用仍未开始,而两个序点之间所有的表达式或者代码执行的顺序是未定义的!序点规则1:在前一个序点和后一个序点之前,也就是两个序点之间,一个值最多只能被写一次;这里,在两个序点之间,a被写了两次,因此,这种行为属于未定义。 序点规则2:进一步说,先前的值应该是
2011-12-05 18:17:07
1257
转载 【C】为什么静态变量会被初始化为0,而自动变量却不会被初始化?
把自动变量初始化为0的代价,将会增加函数调用的代价。C语言非常注重运行速度。然而,把全局变量区初始化为0,仅仅在程序启动时候产生成本。这也许是这个问题的主要原因。更精确的说,C++并不把静态变量初始化为0,他们有自己的默认值,对于原生类型(native types)来说,这意味着0。
2011-12-05 16:53:53
4393
转载 【C】你能用几种方法交换两个变量的值?------存储器别名的影响
找工作的时候,笔试,面试阶段,我们经常看到这么一道题:不用临时变量,如何交换两个变量的值?很多同学不假思索,写下如下代码:#include int swap1(int *a, int *b) { *a = *a+*b; *b = *a-*b; *a = *a-*b; return 0; } int swap2
2011-12-05 16:39:47
1236
转载 【JAVA】JNI技术
JNI技术-1分类: java高级编程 2011-12-01 02:24 149人阅读 评论(0)收藏 举报 什么是JNI呢 就是 java native interface 是 sun公司提供给我们的一个可以调用本地 非 java语言代码 的接口 . JNI技术 实现了java调用本地方法 ,但是有破坏了 java的 跨平台性
2011-12-05 16:12:48
494
转载 进程间通信学习总结2---信号量互斥同步
实现线程之间同步采用互斥锁,或条件变量,但互斥锁只有0,1两种状态,适合于线程对共享资源独占访问,很多时候每个资源可以同时被有限个线程访问,此时互斥锁将无法满足;条件变量同步也同样存在这种问题。信号量实际是一种非负整形计数器,可以很好的控制线程之间资源访问,互斥锁能实现的功能,信号量同样可以。信号量控制资源共享主要是PV原语操作, PV原语是对整数计数器信号量sem的操作。一次 P操作使 se
2011-12-05 15:38:33
1222
转载 进程间通信学习小结(共享内存)
要使用共享内存,应该有如下步骤:1.开辟一块共享内存 shmget()2.允许本进程使用共某块共享内存 shmat()3.写入/读出4.禁止本进程使用这块共享内存 shmdt()5.删除这块共享内存 shmctl()或者命令行下ipcrm共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自
2011-11-21 09:55:43
552
转载 【c】linux socket编程
linux socket 编程(C语言)最近看了一些网络编程的书籍,一直以来总感觉网络编程神秘莫测,其实网络编程入门还是很容易学的,下面这些代码是我在linux下编写的,已经运行过了,编译之后就可以运行了。有不足之处希望大家多多指出,共同学习交流。 套接字是一种进程间的通信的方法,不同于以往介绍的进程间通信方法的是,它并不局限于同一台计算机的资源,例如文件系统空间,共享内存
2011-11-18 18:17:05
631
转载 [C]复杂表达式中的序列点
序列点是一个时间点(在整个表达式全部计算完毕之后或在||、&&、? : 或逗号运算符处, 或在函数调用之前), 此刻尘埃落定, 所有的副作用都已确保结束。ANSI/ISO C 标准这样描述:在上一个和下一个序列点之间, 一个对象所保存的值至多只能被表达式的计算修改一次。而且前一个值只能用于决定将要保存的值。第二句话比较费解。它说在一个表达式中如果某个对象需要写入, 则在同一
2011-11-15 10:48:36
434
转载 windows下 为unix系统共享文件夹的方法
1、确认vmware-tools已经安装好了。这个需要在linux系统下安装。如果是非rpm包的linux系统,会在linux系统里自动挂载一个iso弹出vmtools包,解压缩,然后执行里面的安装脚本进行安装,然后还需进入/usr/bin下(记得好像是)执行以下pl脚本对vmtools进行配置。重启虚拟机发现linux可以修改分辨率时,说明安装好了。vmtools没安装好,share就不能设置;
2011-11-14 14:15:49
1367
转载 Windows下NFS服务器SFU设置
http://blog.chinaunix.net/u1/43045/showart_411683.html一、安装SFU1、下载软件SFUhttp://download.microsoft.com/download/a/1/c/a1ca7af1-a6e3-46e7-874a-4c5d8c0fb3b7/SFU35SEL_EN.exe2、编辑用户组group文 件 和密码passwd
2011-11-14 11:31:21
3381
转载 [C]calloc() 和malloc() 有什么区别?
calloc() 和malloc() 有什么区别?利用calloc 的零填充功能安全吗?free() 可以释放calloc() 分配的内存吗, 还是需要一个cfree()?calloc(m, n) 本质上等价于p = malloc(m * n);memset(p, 0, m * n);填充的零是全零, 因此不能确保生成有用的空指针值或浮点零值(参见第5章)。free()
2011-11-14 11:30:48
672
翻译 【c】GDB 学习
一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、动态的改变你程序的执行环境。cc -g tst.c -o tst gdb tst
2011-11-09 16:16:30
566
原创 数字电视学习 三 PSI
1.PSI可认为分属四个表:程序关联表PAT,TS程序映射表PMT,网络信息表NIT,条件访问表CAT。其中NIT为私用表,但带有此表的传送流分组PID值在PAT中说明,NIT仍须满足PSI标准定义的分段结构。PAT,PMT,CAT中的内容由本标准规定。2.每一分段由下列元素组合唯一识别:a.table_id 8位的table_id标示分段所属的表。0x00分段属于程序关联表。0x0
2011-11-01 18:27:15
605
转载 数字电视学习笔记2 ----mpeg2系统部分
1.系统部分强调将一个或更多的音频、视频或其他的基本数据流合成单个或多个数据流,以适应于存储和传送。(系统模块的功能)2.系统编码可以有两种方法:传送流和程序流。这两种方法分别适应于不同的应用。两种流定义都是面向分组的多路复用流。3.程序流(PS)是将一个或多个具有相同时间基点的数据流的PES分组合为单个流。每个程序流PS对应一个原始流(ES),并具有相同的时间基点,在这种
2011-11-01 09:52:32
806
转载 数字电视学习笔记(1)
首先先学习一下mpeg2规范的第一部分“系统”部分。1.ES- elementary streams 原始流,对视频、音频信号及其他数据进行编码压缩后的数据流称为原始流。原始流包括访问单元,比如视频原始流的访问单元就是一副图像的编码数据。2.PES ----- packetized elementary streams 分组的原始流,原始流形成的分组称为PES分组,是用来传递原始流的
2011-10-28 16:31:48
800
转载 typedef和define具体的详细区别
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句中的数字9 写成字母g 预处理也照样带入。2)typedef是在编译时处理的。它
2011-06-11 13:26:00
429
转载 【c】c语言语法知识点总结 1
1.这样的初始化有什么问题?char *p = malloc(10); 编译器提示“非法初始式” 云云。答:这个声明是静态或非局部变量吗?函数调用只能出现在自动变量(即局部非静态变量) 的初始式中。因为静态变量的地址必须在编译的过程中就确定下来而malloc()申请的内存地址是在运行时确定的。2. *p++ 自增p 还是p 所指向的变量?答:后缀++ 和-- 操作符本质
2011-06-11 13:05:00
1527
转载 判断系统大小端
#includeint is_little_endian(void ){ unsigned int tmp=0x4567; char * ch = (char * )&tmp; if(ch[0]==(char)0x67) { printf("little_endian/n"); return 1; //小
2011-06-11 12:31:00
573
原创 【c】序列化图片资源
#include #include #include long my_file_size(FILE *stream){ long curpos, length; curpos = ftell(stream); fseek(stream, 0L, SEEK_END); length = ftell(stream); fse
2011-06-09 18:24:00
1013
原创 一道上级面试题: 接受单词并按字典序排序
<br />#include<stdio.h><br />#include <string.h><br />#include <stdlib.h><br /><br /><br />#define LISTMAXSIZE 64<br />#define STRINGMAXSIZE 1024<br /><br />struct wordList{ //列表结构<br /> char * befor;<br /> char * body;<br />
2011-06-02 10:58:00
893
原创 驱动编程准备 配置内核树
<br />前言 : 驱动程序和一般用户程序不一样,驱动程序作为一个系统模块连接到内核模块来运行,运行在内核空间里面。所以要开发运行自己构造的模块,首先要配置好一个“内核树”,然后把目标模块和内核树连接起来运行。<br /> <br /> <br />一.首先获得内核源码<br /> 1》查看可以下载的Linux内核源码包:<br /> #apt-cache search linux-source<br /> <br />系统显示如下信息:<br />linux-sour
2011-05-17 15:10:00
1131
转载 Ubuntu中安装X-lite遇到libstdc++.so.5
使用ubuntu的可能会遇到libstdc++.so.5这样的问题。可以使用如下的方法解决这个问题。 wget http://security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2....dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libssudo cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib32/
2011-05-12 09:45:00
1132
原创 【DFB】IDirectFBInputDevice 方式处理事件 --键盘移动一个图片显示
<br />#include <stdio.h><br />#include <unistd.h><br /><br />#include <directfb/directfb.h><br /><br />static IDirectFB *dfb = NULL;<br />static IDirectFBSurface *primary = NULL;<br />static IDirectFBSurface *tux = NULL;<br />static int screen_
2011-04-20 18:06:00
1772
1
转载 void 和 void * 的解释
<br />1.概述许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:void a;这行语句编译时会出错,提示“illegal use
2011-04-19 16:59:00
497
转载 [DFB] 显示字符串 走马灯效果
<br />//字体显示<br />#include <stdio.h><br />#include <string.h><br />#include <stdlib.h><br />#include <unistd.h><br /><br />#include <directfb/directfb.h><br /><br />static IDirectFB *dfb = NULL;<br />static IDirectFBSurface
2011-04-19 16:11:00
1883
转载 DirectFB 代码导读
<br />DirectFB代码导读<br /> <br />转载时请注明出处和作者联系方式<br />作者联系方式:李先静 <xianjimli at hotmail dot com><br /> <br />DirectFB是一个庞大的系统,对它进行彻底分析要花不少时间。幸好多数情况下,只要弄清楚它的基本架构,再重点读一些关键的代码,也就差不多了。前几个月为了完善DFB的窗口管理器,我花了一些时间去研究DFB的架构。把其中一些经验写到这里,供有兴趣的朋友参考。<br /> <br />总的说来,DF
2011-04-18 18:48:00
630
原创 [DFB] 移动鼠标绘制线条
<br />/*1。surface的绘图函数<br />2。如何在surface中获取类似framebuffer的绘制内存地址(去掉代码中的注释)<br />3。eventbuffer的使用,按escape退出,按c 键清屏 ,移动鼠标绘线条 (平滑度有待改进)*/<br /><br /><br />#include <stdio.h><br /><br />#include <directfb/directfb.h><br /><br />static IDirectFB
2011-04-18 12:19:00
1462
原创 (DFB) 在屏幕中间画一条直线
<br />//函数功能 在屏幕中间画一条水平直线<br />#include <stdio.h><br />#include <unistd.h><br />#include <directfb/directfb.h><br /><br />static IDirectFB *dfb = NULL;//这是最上层的接口所有函数的入口均由它进入<br /><br />static IDirectFBSurface *primary = NULL;//主平面,也就是屏幕了,在交互层使用DF
2011-04-18 10:05:00
1332
转载 [DFB] dfb 对图形的renderto
<br />在看DFB有关图形 renderto的部分。<br /> 之前一直以为, DFB是没法对图形进行scale的,但后来在DFB讨论群上,一个网友指点了下,才发现DFB对图形这块有很多好玩和有用的东西,只是我不知道罢了。 下面主要说图形的scale。<br /> DFB绘图的过程,一般是根据图形的ImageProvider,获取图新的DFBSurfaceDescription信息,并根据DFBSurfaceDescription信息来CreateSurface DFB的 ID
2011-04-16 14:50:00
2415
转载 SetCooperativeLevel函数介绍(设置协作等级)
<br />函数声明<br />function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall;<br />参数介绍<br />hWnd DirectDraw具体指向的窗体,在所有的情况下,只需使用主窗体句柄。<br />dwFlags<br />控制标志参数,直接影响DirectDraw和Windows协同工作的方式。下面为说明:<br />DDSCL_ALLOWMODEX<br />允许使用Mode X显
2011-04-16 14:39:00
11381
原创 DFB 用键盘和鼠标控制图片移动的小例子
#include #include #include static IDirectFB *dfb = NULL;static IDirectFBEventBuffer *events = NULL;static IDirectFBSurface *primary = NULL;static IDirectFBSurface *logo = NULL;//此IDirectFBSurface为用于显示的图片 static DFBSurfaceDescriptio
2011-04-16 13:07:00
2301
原创 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并 (按字母顺序排列), 输出到一个新文件C中
<br />/*有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中.*/#include <stdio.h>#include <stdlib.h>int comp(const void * a, const void *b){ return *(char *)a - *(char *)b;}int main(){ FILE *fp; int i,j,n,ni; char t, ch; char
2011-04-12 15:13:00
13876
原创 string.h 中 关于数据拷贝的几个函数测试
<br />//strcpy memcpy strdup bcopy<br /> <br />#include <stdio.h><br />#include <string.h><br /><br />#define DEST_ARRY_LEN 16<br />int my_arry_printf(char * name, char arry [])<br />{<br /> int i;<br /> printf("%s:" ,name);<br
2011-04-11 17:29:00
674
原创 将十六进制参数转换成点分十进制 -- 将点分十进制参数转换成十六进制
<br />#include <stdio.h><br />#include <stdlib.h><br />#include <string.h><br /><br />#include <sys/socket.h><br />#include <netinet/in.h><br />#include <arpa/inet.h><br /><br />/*将十六进制参数转换成点分十进制 <br />例如:0x8002c2f2 ->128.2.194.242<br />*/
2011-04-11 11:34:00
7142
2
原创 http 请求响应码
<br /><br />响应码分五种类型,由它们的第一位数字表示:<br /><br />1.1xx:信息,请求收到,继续处理<br />2.2xx:成功,行为被成功地接受、理解和采纳<br />3.3xx:重定向,为了完成请求,必须进一步执行的动作<br />4.4xx:客户端错误,请求包含语法错误或者请求无法实现<br />5.5xx:服务器错误,服务器不能实现一种明显无效的请求<br />下表显示每个响应码及其含义:<br />100 继续<br />
2011-02-21 12:28:00
1585
转载 gnash 文档说明
<br />gnash文档说明:<br />gnash可以被用作标准播放器或者是一个流览器插件,输入命令行:<br />gnash 路径/文件.swf<br />将会创建一个窗口并播放flash。<br />gnash [选项] 文件名.swf<br />-h 打印用法说明<br />-s factor 放大缩小图象相应倍数<br />-c产生内核文件来代替让SDL捕获它,缺省情况下,SDL捕获所有信号,但是有时候内核文件可以帮助调试<br />-d num 主循环延时的微秒数,值越小,cpu负载越
2011-02-21 12:23:00
1549
原创 GNASH 移植
<br />Gnash 是一个发布在 GPL 许可下的 SWF 播放器,并为 Firefox、Mozilla、Konqueror 等浏览器提供插件支持。官方网址: http://www.gnashdev.org/ 。Gnash 支持很多 SWF v7 的特性和 ActionScript 2 类,对于 SWF v8 及 SWF v9 的支持仍在开发中。除了能够运行在很多 GNU/Linux 发行版上外,Gnash 还支持嵌入式 GNU/Linux、FreeBSD、NetBSD、OpenBSD、非
2011-02-15 18:02:00
5068
转载 #define 定义的数据中包含有UL符号
<br />经常发现一些C语言中通过#define 定义的数据中包含有UL符号,不理解为什么,把他去掉发现也没有什么区别。<br />现在才明白UL是标记该宏长整型 十进制 数据,而不是字符,也不是int型数据。<br />C语言中默认宏中的数字是整型数据。<br />如下面的例子:<br />#define LENGTH (20*1024*1024)UL<br />你要输出他的话就要这样:<br />printf(“LENGTH is %ld/n”,LENGTH);
2011-02-12 15:43:00
1551
1
MTK入门学习教程事例一对一
2010-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人