`
mypyg
  • 浏览: 548014 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
文章列表
在使用ghash看其文档时对insert的介绍是如果key值相同的value再插入时会被替换,对于判断key值相等的标准不太清楚,是hash值相等的话发生hash碰撞时不就麻烦了,于是结合文档以及其源代码,自己写代码做了下验证,结果如下文描述。 1.创建新hash表: GHashTable*         g_hash_table_new                    (GHashFunc hash_func,                                                          GEqualFunc key_equal_fu ...
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)          # !! ...
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

-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的用法

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定义了识别一 ...
Global site tag (gtag.js) - Google Analytics