C/C++
文章平均质量分 58
xnwyd
这个作者很懒,什么都没留下…
展开
-
c语言库函数【string.h】之strcpy_(char * dst,const char * src)
c语言库函数【string.h】之strcpy_(char * dst,const char * src) 代码如下:#include#include char * strcpy_(char * dst,const char * src){ assert( dst != NULL&& src != NULL); char *address=dst;//首地原创 2010-04-26 21:16:00 · 1222 阅读 · 0 评论 -
cannot find -lstdc++解决方案
今天在ubuntu12.10 64位下编译32位android 4.04源码时报错:/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.5.4/libstdc++.so when searching for -lstdc++/usr/bin/ld: skipping incompatible /usr/原创 2013-04-22 19:11:06 · 13914 阅读 · 1 评论 -
基于飞思卡尔i.MX 6Quad Sabrelite开发板的触摸屏调试
1 概述本次任务是在飞思卡尔i.MX 6Quqd Sabrelite开发板上调试触屏驱动,触屏芯片是Goodix的gt828芯片,触屏接口是I2C。操作系统:android 4.0.4内核版本:3.0.15 2 调试步骤2.1 硬件连接2.1.1 开发板硬件接口开发板已提供独立的接口用于触屏,其示意图如下: 它提供了一原创 2013-06-20 11:50:18 · 12947 阅读 · 7 评论 -
飞思卡尔i.MX 6Quad Android 4.0.4的3G驱动移植
1 概述平台:freescale i.MX 6Quad 4核开发板Sabrelite操作系统:Android 4.0.4内核:3.0.153G模块:中兴MG3732和UbloxLISA-U130 2 中兴MG3732模块移植2.1 准备准备一张可用的联通3G卡,放入SIM卡卡槽,接着把中兴MG3732开发板通过usb连接到主板上。原创 2013-07-26 16:58:07 · 7863 阅读 · 0 评论 -
Google Protocol Buffer 的使用和原理
原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/转载 2014-10-17 11:54:42 · 1484 阅读 · 0 评论 -
给 C 实现一个垃圾收集器
原文转自云风的Blog:http://blog.codingnow.com/2008/06/gc_for_c.html转载 2014-10-17 11:16:07 · 1037 阅读 · 0 评论 -
几种序列化库
1.google protocal buffer:http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/http://www.cnblogs.com/stephen-liu74/archive/2013/01/02/2841485.html2.Google FlatBuffer:http://google.githu原创 2015-01-11 16:33:56 · 3309 阅读 · 0 评论 -
基于socket简单通信协议实现
1 场景当用socket进行进程通信,传输数据的时候,会出现以下一些情况:(1)完整的一条消息被系统拆分成几条发送,例如要发送一条消息:Hello World ,却被系统分成两条消息发送,分别为:Hello 和 World。(2)几条独立的消息被系统合成一条消息发送,例如要发送两条消息分别为:a memory from my past和it’s been a year,却被系统和成一条原创 2012-06-16 12:58:08 · 23107 阅读 · 5 评论 -
Android App层通过JNI从驱动获取Input Event
1 概述 尝试在App层直接读取驱动的Input Event,获取触屏事件(本文获取的是电磁笔触屏事件),而不通过Android的Input Framework. 2 架构3 实现3.1 JNI层共有以下几个文件: 3.1.1 input_pen.h 首先看input_pen.h #ifndef _INPUT_PEN_H原创 2014-12-29 11:13:47 · 12198 阅读 · 11 评论 -
如何在android的jni线程中实现回调
JNI回调是指在c/c++代码中调用java函数,当在c/c++的线程中执行回调函数时,会导致回调失败。其中一种在Android系统的解决方案是:把c/c++中所有线程的创建,由pthread_create函数替换为由Java层的创建线程的函数AndroidRuntime::createJavaThread。假设有c++函数:void *thread_entry(voi原创 2012-03-16 11:38:12 · 21460 阅读 · 8 评论 -
jni数组使用(二)
上一篇说到在java中调用c++函数中,如何使用jni数组。下面谈一谈在回调中如何使用jni数组。假如有一个java函数:public void Receive(char buffer[],int length)我们需要在c++中调用这个函数,在jni中该如何实现数组的转换?(本篇不涉及jni的回调函数的实现机制)实现如下:static void receive_callb原创 2012-03-16 10:48:22 · 6858 阅读 · 0 评论 -
jni数组使用(一)
假设有这样一个java函数:public int Send(char buffer[],int length)这个函数需要调用c/c++函数int send(unsigned char *buf, int len)实现,那么用JNI该如何实现?首先分析java的参数char buffer[ ],它在jni中的对应类型为jcharArray,说明从java传到jni的参数类型原创 2012-03-16 10:37:52 · 17879 阅读 · 4 评论 -
c语言库函数【string.h】之strncpy_(char* dst,const char* src,int count)
c语言库函数【string.h】之strncpy_(char* dst,const char* src,int count) 代码如下:#include#include //strncpy函数,末尾不添加/0char *strncpy_(char* dst,const char* src,int count){ char *start =原创 2010-04-26 21:19:00 · 2750 阅读 · 1 评论 -
c语言库函数【string.h】之strcat_(char *dst, char *src)
c语言库函数【string.h】之strcat_(char *dst, char *src) 代码如下:#include#include char *strcat_(char *dst, char *src){ char * cp=dst;//首地址 while(*dst)//移动指针到字符串末尾 dst++; while(*dst++=*原创 2010-04-26 21:29:00 · 1320 阅读 · 0 评论 -
c语言库函数【string.h】之strchr_(char *str, char c)
c语言库函数【string.h】之strchr_(char *str, char c) 代码如下:#include#include //在一个串中查找给定字符的第一个匹配之处//返回首次出现字符,失败返回/0char *strchr_(char *str, char c){ assert(str!=NULL || c!=NULL); wh原创 2010-04-26 21:30:00 · 1886 阅读 · 0 评论 -
c语言库函数【string.h】之strstr_(char *s1, char *s2)
c语言库函数【string.h】之strstr_(char *s1, char *s2) 代码如下: #include#include //在串中查找指定字符串的第一次出现 char * strstr_(char *s1, char *s2) { if( s1 == NULL || s2 == NULL || *s1== /0 ||原创 2010-04-26 21:34:00 · 3622 阅读 · 0 评论 -
c语言库函数【string.h】之 strrep_(char *src, char* oldStr, char * newStr)
c语言库函数【string.h】之 strrep_(char *src, char* oldStr, char * newStr) 代码如下:#include#include char * strrep_(char *src, char* oldStr, char * newStr){ if(src == NULL || *原创 2010-04-26 21:35:00 · 3520 阅读 · 0 评论 -
c语言库函数【string.h】strcmp_(const char * str1,const char * str2)
c语言库函数【string.h】strcmp_(const char * str1,const char * str2) 代码如下:#include#include int strcmp_(const char * str1,const char * str2){ if(str1==NULL || str2==NULL) return 0;原创 2010-04-26 21:25:00 · 1898 阅读 · 0 评论 -
c语言库函数【string.h】之 substr_(char *dest, const char* src, unsigned int start, unsigned int len)
c语言库函数【string.h】之 substr_(char *dest, const char* src, unsigned int start, unsigned int len) 代码如下:#include#include //substr截取子串char * substr_(char *dest, const char* src, uns原创 2010-04-26 21:38:00 · 8568 阅读 · 0 评论 -
linux内核链表使用
Linux内核链表的核心思想是:在用户自定义的结构A中声明list_head类型的成员p,这样每个结构类型为A的变量a中,都拥有同样的成员p,如下:struct A{int property;struct list_head p;}其中,list_head结构类型定义如下:struct list_head {struct list_head *next,*prev;原创 2012-03-16 08:46:27 · 8927 阅读 · 0 评论 -
Android 4.2充电画面关键代码分析
系统进入充电模式时,显示 充电画面,充电画面的代码在/system/core/charger/charger.c,下面对其关键代码进行分析1)结构体/*power_supply信息*/struct power_supply { /*链表节点*/ struct listnode list; /*power_supply名称,如rk-ac/rk-usb/rk-原创 2015-01-20 14:11:32 · 3048 阅读 · 0 评论