上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 27 下一页
摘要: sqlite3_column_value()的返回对象是一个 unprotected sqlite3_value 对象.一个不受保护的sqlite3_value object可能只能用于 sqlite3_bind_value() 和sqlite3_result_value().如果一个unprotected sqlite3_value 对象( sqlite3_column_value()函数的返回... 阅读全文
posted @ 2013-06-29 11:59 陈哈哈 阅读(7839) 评论(0) 推荐(0) 编辑
摘要: 首先,我们要先了解一下UDP包的结构。 图1 UDP报文格式从图1,我们可以看出,从UDP包中,我们可以获取的信息只有源端口和目的地端口。我们不能获取到源IP因为报文中没有源IP。真正包含IP地址的是IPV4伪报头中。 图2 UDP包的IPV4伪报头格式可以看出,图1中的UDP包其实是包含在图2中的,图2中清楚地指出了包的源地址(source addresses)和目标地址(destination addresses)都在IPv4头中。图2的协议是UDP专用的(详见List of IP protocol numbers):17(0x11)。UDP length指的是UDP头(head)和数据( 阅读全文
posted @ 2013-06-27 20:22 陈哈哈 阅读(2990) 评论(0) 推荐(0) 编辑
摘要: 在接受到UDP包后,有时候我们需要根据所接收到得UDP包,获取它的路由目的IP地址和头标识目的地址。(一)主要的步骤:在setsockopt中设置IP_PKTINFO,然后通过recvmsg来获取struct in_pktinfo(struct in_pktinfo是struct msghdr中msg_control的成员).in_pktinfo 结构体(如下所示),我们可以从in_pktinfo中获取路由目的地址(destination address of the packet)、头标识目的地址(source address of the packet)。这种方法只能用于UDP(数据报)传 阅读全文
posted @ 2013-06-27 14:03 陈哈哈 阅读(19863) 评论(4) 推荐(0) 编辑
摘要: 06-24 18:04:36.857: E/AndroidRuntime(22251): FATAL EXCEPTION: main 06-24 18:04:36.857: E/AndroidRuntime(22251): android.os.NetworkOnMainThreadException 06-24 18:04:36.857: E/AndroidRuntime(22251): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1128) 06-24 18:04:... 阅读全文
posted @ 2013-06-24 20:54 陈哈哈 阅读(22223) 评论(0) 推荐(1) 编辑
摘要: 以下代码在Federo9上试验成功。一、格式化输入16进制字符串printf("Format:%.2x\n",10);输入结果:二、测试各类型的占用的字节数int main(int argc, char *argv[]){ int OutputHex = 1; unsigned char aValue=10; char Buffer[10]; int len=sprintf(Buffer, OutputHex ? "%.2X " : "%c", aValue); printf("Len:%d Format:%s\n" 阅读全文
posted @ 2013-06-21 13:22 陈哈哈 阅读(759) 评论(0) 推荐(0) 编辑
摘要: 一、read系统调用 系统调用read的作用是:从与文件描述符filedes相关联的文件里读入nbytes个字节的数据,并把它们放到数据区buf中。它返回实际读入的字节数。这可能会小于请求的字节数。如果read调用返回0,就表述未读入任何数据,已经达到了文件尾。同样,如果返回的是-1,就表示read调用出现了错误。 #include size_t read(int filed... 阅读全文
posted @ 2013-06-21 13:21 陈哈哈 阅读(538) 评论(0) 推荐(0) 编辑
摘要: assert的初步认识assert宏指令是用来诊断程序是否有误的,函数原型如下void assert(int expression) 那为什么我们要使用assert而不用printf呢?因为assert可以帮我们监测出是哪个条件不满足了,而且可以直观地显示出是代码中的哪一行出问题了,并且,当我们不打算用assert来诊断程序的时候,可以很方便地通过宏定义#define NDEBUG 取消assert的诊断。相比于自己写一个一个printf,自己判断程序哪一行出错,显然assert更有优势。其实assert的时候很简单,因为他的使用就跟if一样,assert(expression);expres 阅读全文
posted @ 2013-06-18 18:47 陈哈哈 阅读(4451) 评论(0) 推荐(1) 编辑
摘要: 感觉学习代码库最好的方法就是运行一下。下面附上结果和示例代码#include <stdio.h>#include <string.h>int main(){ const char * cs="Hello World"; const char * ct="Hello"; char * s=malloc(20); memset(s,0,20); char * t; int c='o'; const size_t n=3; //strcpy(s,ct); printf("const char * cs=Hell 阅读全文
posted @ 2013-06-17 16:19 陈哈哈 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 一、向Main函数中传递参数argv 1、选中工程配置 2、写入你要传递的参数 3、清理工程→建立工程,以便让设置生效 二、设置断点 相关的快捷键 三、代码自动补全快捷键修改 1、快捷键设置 2、修改快捷键 四、设置自动缩进4个空格 1、选中编辑器配置 2、进行相关的设置 五、用kdevelop来开发arm linux上的应用程序 ... 阅读全文
posted @ 2013-06-16 12:12 陈哈哈 阅读(1127) 评论(0) 推荐(0) 编辑
摘要: 1)、把Dos/Windows下的文件移至Linux/Unix系统 $ sed -e 's/.$//' mydos.txt > myunix.txt2)、把Linux/UNIX 文本移至 Windows 系统,使用以下脚本执行必需的格式转换:$ sed -e 's/$/\r/' myunix.txt > mydos.txt3)chmod +w filename 改变文件的权限chmod 77... 阅读全文
posted @ 2013-06-15 21:13 陈哈哈 阅读(196) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 27 下一页