- 浏览: 549712 次
- 性别:
- 来自: 成都
最新评论
-
q649916440:
使用这个的目的是什么呢?感觉没啥优势啊,用起来还绕个大圈
使用googleapi-client-java操作gtasks(一) -
文艺吧网:
还有一个GZIP的问题,我怎么转都乱码最后是因为要解压一下ht ...
关于使用InputStreamReader读取GBK编码文件乱码的问题 -
xiaodousa:
9楼正解!
Android在Listview中使用EditText -
fxiaozj:
zyp09 写道很想知道在Mainactivity界面怎么获得 ...
Android PreferenceActivity 学习笔记 -
zylc369:
楼主很用心,一定要顶
Android通过共享用户ID来实现多Activity进程共享
文章列表
glib中hash表函数的使用(ghash)
- 博客分类:
- C/C++
在使用ghash看其文档时对insert的介绍是如果key值相同的value再插入时会被替换,对于判断key值相等的标准不太清楚,是hash值相等的话发生hash碰撞时不就麻烦了,于是结合文档以及其源代码,自己写代码做了下验证,结果如下文描述。
1.创建新hash表:
GHashTable* g_hash_table_new (GHashFunc hash_func,
GEqualFunc key_equal_fu ...
GSource 创建时各函数的用处
- 博客分类:
- C/C++
1.prepare:
进入睡眠之前,在g_main_context_prepare里,mainloop调用所有Source的prepare函数,计算最小的timeout时间,该时间决定下一次睡眠的时间。
2.check:
poll被唤醒后,在g_main_context_check里,mainloop调用所有Source的check函数,检查是否有Source已经准备好了。如果poll是由于错误或者超时等原因唤醒的,就不必进行dispatch了。
3.dispatch:
当有Source准备好了,在g_main_context_dispatch里,mainloo ...
从网上多篇文章综合而来:
(一)完整的从头开始生成:
1.进入源码目录,执行autoscan,得到configure.scan文件。对此文件进行修改,然后改名为configure.ac。修改后的configure.scan文件如下:
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
# 修改模块名,版本号,bug report为自己所需的内容
AC_INIT(am_test, 1.0, none)
# !! ...
lfs制作中碰到的几个问题
- 博客分类:
- Linux
1.
现象:重新启动后无法找到root文件系统
原因:内核不能识别串口硬盘
解决:更改内核编译参数,重新生成内核后OK
2.
现象:终端出现乱码
原因:LANG设置为了zh_CN.GB18030
解决:修改LANG为 zh_CN.utf8
3.
现象:mount sd卡提示无法找到iso8859-1字符集
原因:系统上有iso-8859-1字符集
解决:mount -o,iocharset=cp936 强行指定。或者修改编译内核时的参数为ascii
4.
现象:vsftp安装后本地用户无法登陆
原因:lfs刚安装后/etc/shells此文件不存在,而vsftpd会用 ...
软件项目管理,计划安排的好书。
进度失控,几乎是每个软件开发项目挥之不去的噩梦。
宏文件如下。
设置快捷键后,双击高亮要注释的内容,使用快捷键触发即可。
可自动识别
普通:在头部添加
宏:在末尾添加注释
变量:在末尾添加
函数:在头部添加,并自动识别函数个数
类:在头部添加
代码如下:保存为m.em即可加入source insight
macro insert_func_header_comment()
{
hbuf = GetCurrentBuf()
if( hbuf == 0 ) stop
// Get current time
szTime = GetSysTime(1)
Day = szTime.Day
Mont ...
当接手新项目时,通过此方法可以迅速了解程序运行期间各个函数的调用关系,来帮助熟悉代码。
首先:
gcc编译时加上参数 -finstrument-functions 。
加上此参数则需要自己实现约定好的4个函数,通过这4个函数来实现跟踪。
4个函数的实现代码在gmail。
通过这4个函数,将每次调用时的函数地址输出到文件,然后使用addr2line转换成函数名。
这个步骤的代码实现在gmail:treefunc.c
附注:
整个跟踪过程会产生大量的数据,treefunc.c的输出更可能达到数百M。待优化
Doxyfile里面三个变量要配置一下:
DOXYFILE_ENCODING = gb18030 //Doxyfile 本身的编码
OUTPUT_LANGUAGE = chinese //输出的语言
INPUT_ENCODING = gb18030 //输出的编码
在生成的时候,执行 doxygen:
发现处理到某个文件就退出,通过修改源代码doxygen.cpp中的函数transcodeCharacterBuffer()发现是被处理的这个文件中有不能转换的字符,删除后一切OK。
编码可以通过 iconv -l 来看。 ...
动态库的soname
- 博客分类:
- Linux
-Wl,-soname -Wl 告诉编译器将后面的参数传递到连接器。而 -soname 指定了
共享库的 soname
这个soname的存在是为了兼容方便。
比如:
有一个程序ap1,以及一个库libtest.so.1
ap1启动的时候需要libtest.so.1
如果链接的时候直接把libtest.so.1传给了ap1,那么将来库升级为libtest.so.2的时候,ap1仍然只能使用 libtest.so.1的代码,并不能得到升级的好处。而如果指定了soname为libtest.so,那么ap1启动的时候将查找的就是 libtest.so而不是其在被链接时实 ...
个人创作,欢迎指错。
牵扯到ELF格式,gcc编译选项待补,简单实用的说明一下,对Linux下的so文件有个实际性的认识。
1.so文件是什么?
2.怎么生成以及使用一个so动态库文件?
3.地址空间,以及线程安全.
4.库的初始化,解析:
5. ...
setitimer的用法
- 博客分类:
- C/C++
struct itimerval
{
struct timeval it_interval;
struct timeval it_value;
} ;
it_value 定时器在这个值后第一次启动
it_interval 是定时器间隔,如果所有内容都不为0,则定时器以这个值reset,也就是会多次发生。
图素位元 RGB值 颜色名称
00000000 00 00 00 黑
00000001 80 00 00 暗红
00000010 00 80 00 暗绿
00000011 80 80 00 暗黄
00000100 00 00 80 暗蓝
00000101 80 00 80 暗洋红
00000110 00 80 80 暗青
00000111 C0 C0 C0 亮灰
00001000 C0 DC C0 美元绿
00001001 A6 CA F0 天蓝
11111111 FF FF FF 白
11111110 00 FF FF 青
11111101 FF 00 FF 洋红
11 ...
8. 关键字volatile有什么含意?并给出三个不同的例子。
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:
1). 并行设备的硬件寄存器(如:状态寄存器)
2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3). 多线程应用中被几个任务共享的变量
回答不出这个问题的人是不会被雇佣的。我认为这 ...
英文原文见:http://www.embedded.com/2000/0005/0005feat2.htm
英文标题:A 'C' Test: The 0x10 Best Questions for Would-be Embedded Programmers
作者:Nigel Jones 译者:RTOSFUN E-Mail:rtosfun@gmail.com
各位,拿出铅笔。这个测试将分辩出你是 ...
刚学习lex的实践.很简单.
lrc.l:lex文件,定义了time tag标记,以及操作
%{
%}
num [0-9]+
timetag \[{num}+\:{num}+(\.{num}+)?\]
%%
{timetag} { return 1;}
\n ;
. ;
%%
int yywrap()
{
return 1;
}
%{%}中间为空,没有什么要提前声明的; num,timetag定义了识别一 ...