自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (5)
  • 收藏
  • 关注

原创 技术连接收藏

由于公司网络的原因,不能从外站博客转载原始图片内容,所以保留连接;离奇“undefined reference”错误分析与解决方案http://www.lingcc.com/2012/05/31/12093/#sec-1非常好的一个网站,安排活动,投票等很实用;http://www.doodle.com/android audio系统学习http://ww...

2014-01-10 14:11:30 1091 1

原创 dlopen 时序引起的crash问题

when use dlopen as below,dlhandler=dlopen(DLL_PATH,RTLD_LAZY);if dlopen was called in unsafe sequence, such as called after creating thead.it's possible to cause a race conditionbetween dlopen called by one thread and lazy symbol resolving ...

2021-01-25 16:50:54 1490 1

原创 Android Valgrind 使用

Valgrind是什么Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgrind可以检测内存泄漏和内存违例,还可以分析cache的使用等,灵活轻巧而又强大,能直穿程序错误的心脏,真可谓是程序员的瑞士军刀Valgrind编译安装Android 7.0 上已经集成了Valgrind,只需进入external/valgrind目录下,mm -j16就可以编译va

2021-01-18 14:38:09 1897

原创 线程及进程同步方法分享(三): 进程同步(pthread_cond+互斥量)

线程及进程的同步 可以使用 信号量, 信号的方法。但实际使用过程中遇到一个难题,就是sem_timedwait 使用的是绝对时间, 如果timedwait过程中修改系统时间则会出现异常, timeout 提前退出或timeout 到期后还无法退出。原来的方法:线程同步使用pthread_cond+ mutex的方法可以参考如下文章。https://blog.csdn.net/w...

2019-07-16 09:57:44 402

原创 线程及进程同步方法分享(二): 进程同步(互斥量)

将  pthread_mutex_t  串接在  共享内存,同时 pthread_mutex_t 设置为进程共享属性,可以实现跨进程同步。 void * ShmCreate( int *iShmId, c8 *pc8Name, u32 u32Shmsize ) { u32 Key; Key = Crc32_ComputeBuf(0, 0, 0); Key = C...

2019-02-03 18:00:22 499

原创 线程及进程同步方法分享(一): 线程同步(互斥量)

互斥量的相关API://int pthread_mutex_init (pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr);//int pthread_mutex_destroy (pthread_mutex_t *mutex);//int pthread_mutex_trylock (pthread_mutex_t *...

2019-02-02 15:59:42 368

转载 Linux 下进程互斥访问同一片共享内存的问题,

转自: https://www.cnblogs.com/my_life/articles/4538299.htmlhttp://segmentfault.com/a/1190000000630435http://blog.csdn.net/luansxx/article/details/7736618 这里的“不相干”,定义为:这几个进程没有父子关系,也没有 Server/Cl...

2019-01-31 11:01:10 1132

转载 内存都去哪了

http://ju.outofmemory.cn/entry/110234  转自:  前两天一台128G内存的oracle主机发生故障触发kdump,最终由于var目录空间不足,导致kdump生成不完全。结合之前redhat给出的建议,crash设置的空间最好大于memory 空间。对此我们做了一个简单的计算,认为kdump主机生成的是运行在内存里的信息 ,虽然主机有128G的内存,不过通过...

2018-12-04 15:55:01 2465

原创 call timerfd_create,return errno=38 function not implemented

timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC);返回errno=38 function not implemented的错误 解决方法:需要在kernel中配置CONFIG_TIMERFD=y 的选项。

2017-12-30 16:02:31 2595

原创 查看当前进程打开fd的数量及上限

ulimit -Hn4096cat /proc/sys/fs/file-nr   2048    0       50438cat /proc/sys/fs/file-max50438cat /proc/sys/fs/nr_open   1048576sprintf snprintf  vsprintf vsnprintf strcpy strncpy st

2017-12-30 15:57:16 11604

原创 测试USB 读写速度

dd if=/dev/sda of=/dev/null bs=1M count=1000每次测完 清一下 memory cacheecho 3 > /proc/sys/vm/drop_caches不然会继续从cache 读数据/ # dd if=/dev/sda of=/dev/null bs=1M count=10001000+0 records in1000+0

2017-12-05 10:57:05 7509

原创 2016_随记备忘录

打印进程运行时open的fd数量:lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more从一个server往另外一个server copy文档:scp –r xxxx/*USERNAME@xxx.xx.xxx.xxx:/home/xxxxx/< >&"&a...

2016-08-01 16:20:08 475

原创 android studio的配置问题

下载安装了个android studio , 碰到各种问题。http://tieba.baidu.com/p/2970979131failed to find Build Tools revision 19.0.0解决办法参考: my.oschina.net/wffger/blog/279840 下载sdk的路径:http://www.androiddevtools.cn/

2016-07-04 18:28:52 343

原创 同一个进程内open两次同一文件并读写

今天和同事讨论一个文件是调用两次open是否会成功, 以及交叉读写会有什么结果?      FILE* fd1 = NULL; FILE* fd2 = NULL; char buffer1[40]; char *buffer2 = "gggggggggg"; int ret = 0, ret1; fd1 = fopen("./text", "rb+"

2016-06-24 14:08:07 8489 1

原创 logcat后ctrl+Z 退出,压测导致OOM

在console端输入logcat, 然后ctrl+z 将logcat进程切到background, 压测一段时间后/system/bin/logd会消耗大量内存,从而导致OOM并Killing 'd.process.xxx'导致系统各种异常。/system/bin/logd 是android log系统的守护进程, 如果将logcat切到后台,应该是会把log信息保存到内存。log如

2016-05-31 15:08:52 859

原创 如何下载android-cts-5.0_r5源码

参考文档:http://yinger-fei.iteye.com/blog/1300144http://blog.csdn.net/ruanjianxiong/article/details/7610299$ mkdir ~/bin$ PATH=~/bin:$PATH$ curl https://storage.googleapis.com/git-re

2016-04-14 19:23:57 2199 1

原创 谨慎使用BN_bin2bn和BN_bn2bin

BIGNUM *a = NULL; BIGNUM *b = NULL; BIGNUM *c = NULL; unsigned char *xychar= NULL; int i; unsigned char data[20]; const unsigned char testk[20] = { 0x00, 0x01, 0x43, 0xbd, 0x74,

2016-03-15 16:49:14 15571 8

原创 linux PATH环境变量设置与读取

在项目开发过程中, 需要根据路径来运行一些脚本或者程序, 开发中不适宜写死为固定的path. 这样移植code或维护都会不太便利, 比较好的做法是配置环境变量并且在code中从环境变量来读取, 这样不同的project还可以配置不同的环境变量但使用同一套code.以下是一些例子:1. 在启动启动运行的脚本中设置如下环境变量:  export WIFI_MODULES_PATH=$P

2016-01-29 17:17:39 990

原创 cmake学习实例

下面是自己写的一个cmake的例子, 编译的过程中碰到了很多麻烦问题, 贴出来分享下。###################################################### minidlna: dms##################################################MACRO( MA_IMPORT_LIB name type lib

2016-01-29 17:01:31 3557

原创 多进程学习3

本文主要描述如何启动一个独立的program并实现进程间的通信。 主进程main1:void main( void ) { const char cmd_start[] = "start"; const char cmd_stop[] = "stop"; char str_read_fd[10]; char str_write_fd[10]; int file_pipes

2016-01-12 16:23:28 691

原创 多进程学习2

多进程学习1讲了fork和execl的用法, 那么system和execl有啥区别呢? 下面是system的例子, code和 上一篇文章一致。 main1:void main( void ) { pid_t child = fork(); if ( child == -1 ) // this is the child process { p

2016-01-08 18:55:08 329

原创 多进程学习1

下面是一个使用fork 并运行另外一个程序的例子: main1 程序如下:void main( void ) { pid_t child = fork(); if ( child == -1 ) // this is the child process { printf( "fork err.\n" ); exit(EXIT_FAILURE

2016-01-08 17:13:40 408

原创 死机案例分析1

問題描述:XXXX  海外项目待机开机压测时出现死机,遥控器无响应。问题分析:出现问题时有产生如下backtrace:F/libc    (  523):@@@ ABORTING: LIBC: ARGUMENT IS INVALID HEAP ADDRESS IN dlfree addr=0x70ef03a8     #00  pc 0000f13c /system/lib

2015-12-23 20:11:57 767

转载 SQLite3 C语言API入门

SQLite3 C语言API入门下载SQLite3我们下载sqlite源码包,只需要其中的sqlite3.c、sqlite.h即可。最简单的一个创建表操作

2015-09-29 15:14:51 430

转载 linux学习-pipe

转自: http://www.cnblogs.com/biyeymyhjob/archive/2012/11/03/2751593.html 下面管道的例子是多进程之间的用法, 如果在多线程中使用pipe, 在任何一个线程中关闭pipe[0] 或者 pipe[1] 都会导致另外一个线程无法正常使用pipe, 不像多进程中进程1中关闭pipe[0] , 进程2中还可以用pipe[0] 。

2015-09-08 16:33:30 626

原创 linux学习---select的用法

select 不仅会改变timeout的值,而且会改变fd_set集合的值。所以调用完一次select后,fd_set和timeout都必须重置.struct timeval {               long    tv_sec;         /* seconds */               long    tv_usec;        /* microseco

2015-09-08 16:16:16 580

原创 常见编译错误解决

编译错误1:  goto 语句错误dtcp_ake_state_machine.c:742:1: error: jump to label ‘error_exit’ [-fpermissive] error_exit: ^dtcp_ake_state_machine.c:706:14: error:   from here [-fpermissive]         goto

2015-08-21 10:48:48 1084

转载 crosses initialization of “XXX”

http://blog.sina.com.cn/s/blog_4b9eab320100s8s1.htmlcrosses initialization of “XXX”  这个问题是由于goto引起的;goto是已经名为不提倡的语句,但是有时它还是很有用的。代码:11 void func()12 {13        A a1;14        cout

2015-07-28 17:58:25 584

原创 命令行svn commit分享

有时候命令行提交某个文件夹下的code时不知道会提交哪些文件,直接svn commit可能会出现多提交你未预料到的其他文件,咋办?  先svn status, 再svn commit. Example : @xalnx6:~/CTV_2K15/CTV_P2K15/TV/install$svn status  ./include/dtcp_ip ./lib/dtcp_

2015-07-13 11:12:20 3834

原创 mutex和condition的用法

分享一下用到的mutex和condition用法。Mutex一般有两种使用情况,一种是单独使用,保护临界区。一种是和condition配合使用,可以等待某condition拿到之后再向下走。Condition 有两种signal形式, single和  broadcast,下面例子是signal的,做个参考。 pthread_cond_t ake_cond  = PTHRE...

2015-07-13 11:08:49 4009

原创 如何将wpa_supplicant ssid字串转换为utf8

在PC平台 char *buf3 = "\xe8\xbf\x9e\xe7\x94\xa8\xe7\x94\xb5\xe5\xbd\xb1\xe5\x90\x8e\xe6\x82\x94\xe4\xba\x86\xe4\xba\x86\xe4\xbb\x96\xe5\x92\xaf";Strlen(buf3)=30, 而不是120. 导致验证的过程中费了写周折。snprintf(buf1, 120,

2015-06-27 20:57:37 4320

转载 windows下copy批处理命令

收藏备用 //将D:\source 下的所有文件 copy到D:\dest\ @echo offfor /r D:\source %%i in (*.*) do if exist %%i copy "%%i" D:\dest\ /ypause

2015-06-27 13:49:14 2199

转载 PRID64干啥的

http://blog.163.com/guixl_001/blog/static/4176410420121021111117987/nt64_t用来表示64位整数,在32位系统中是long long int,在64位系统中是long int,所以打印int64_t的格式化方法是:[cpp] view plaincopyprintf("%l

2015-05-13 14:03:37 4709

原创 不同等级的debug信息打印

借鉴android 中logcat的不同等级debug信息, 在c语言层打印debug信息时也可以采用如下的定义来控制debug信息的打印。#define DEBUGLEVEL 4#if (DEBUGLEVEL > 0)#define DTCPLOGE(TAG,args...) printf("[DTCP] E/"); printf(TAG); printf(": "); printf

2015-04-13 10:13:29 954

转载 makefile学习3-wildcard和patsubst

notdir,wildcard和patsubst是makefile中几个有用的函数,以前没留意过makefile中函数的用法,今天稍微看看~1、makefile里的函数makefile里的函数使用,和取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开,像这样 return = $(functionname  arg1,arg2,arg

2015-04-10 10:40:01 679

原创 makefile 学习例子2

TARGET_SINK = sinkTARGET_SERVER = serverSINK_SRC = sink.cSERVER_SRC = server.cSINK_OBJ = sink.oSERVER_OBJ = server.oCXX = arm-linux-gnueabihf-g++INCLUDES = -I/opt/arm/gcc-linaro-arm-linu

2015-04-10 10:22:57 458

原创 makefile 学习例子1

TARGET = unit_testC_SRCS = main.cC_OBJS = $(patsubst %.c, %.o, $(C_SRCS))CXX = arm-linux-gnueabihf-g++INCLUDES = -I/opt/arm/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/arm-linux-

2015-04-10 10:22:09 533

原创 shell脚本的学习例子2

主要功能就是打开logcat并保存到指定路径的文件中,当文件达到一定大小时,新建一个文件。 #[Working flow]#Check nvtlog is existed in emmc or sd card#If nvtlog is existed in USB diskif [ -f /storage/usbdisk/nvtlogc ]; then    #dump t

2015-03-18 10:36:54 677

原创 shell 脚本的学习例子1

打包文件系统img的脚本如下:#!/bin/shif [ $# != 2 ]; then echo "Usage:$0 size_in_MB fs_floder_name"else rm -fr mnt mkdir mnt dd if=/dev/zero of=./$2.img bs=1M count=$1 echo "y" | mkfs.ext4 -b 4096

2015-03-18 10:20:56 427

原创 crash引起播放列表退出的问题分析过程分享

定位到crash问题, 见2015-01-05-18-19-49.log 236629-238000行, 错误如下:signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 40b6ca9aFFMpegPacketRea (2443): undefined instruction: pc=40b6ca9a[01:05:19:06:22]I/D

2015-03-18 10:05:48 1260

android binder ipc示例

Android.mk BnComTestService.h BpComTestService.h ComTestService.h IComTestService.h BnComTestService.cpp BpComTestService.cpp ComTestService.cpp IComTestService.cpp 两个program, 一个client, 一个server, 用于测试binder通信效能及学习。

2016-03-25

C语言程序设计 适合打基础

C语言程序设计C语言程序设计C语言程序设计C语言程序设计

2010-07-22

高质量C++编程指南-林锐.pdf

编程学习\高质量C++编程指南,非常全面的,对C的提高有帮助

2010-07-22

C语言深度解析-让你真正理解到C的精髓

适合C语言工程师及有一定基础知识的软件人员学习

2010-06-18

PIC16F877液晶显示器程序.

非常完整的液晶显示程序! 有.c 和.h 两个文件

2009-12-01

空空如也

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

TA关注的人

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