- 博客(161)
- 收藏
- 关注
转载 基于ARM9开发板的按键字符设备驱动实现
摘要:该驱动程序实现4个按键设备在Linux系统中基于QT2410E开发板的工作情况,通过该实例可以了解ARM平台Linux系统下的GPIO程序控制,以及硬件中断程序的工作机制。另外还可以熟悉Linux 2.6内核的模块加载和测试方法。1.了解硬件原理图由于该设备驱动是针对具体硬件设备的,所以一般需要了解它的硬件原理图(如图1),该模块有四个按键分别是S2,S3,S
2014-10-27 17:41:41
2041
转载 一个Linux下C线程池的实现(转)
1.线程池基本原理 在传统服务器结构中, 常是 有一个总的 监听线程监听有没有新的用户连接服务器, 每当有一个新的 用户进入, 服务器就开启一个新的线程用户处理这 个用户的数据包。这个线程只服务于这个用户 , 当 用户与服务器端关闭连接以后, 服务器端销毁这个线程。然而频繁地开辟与销毁线程极大地占用了系统的资源。而且在大量用户的情况下, 系统为了开辟和销毁线程将浪费大量的时间和资源。线程
2014-09-18 10:13:08
922
原创 strtok_r使用实例
#include#include#define INFO_MAX_SZ 255typedef struct { char level[16]; char ssid[36];}JOSEPH_WIFI_AP_MESSAGE;int main(){ JOSEPH_WIFI_AP_MESSAGE scan_ap_message[10]; char buf[INFO_MAX_SZ]
2014-09-09 17:38:22
1888
转载 linux free命令详解
我的linux执行free命令显示如下: [root@Linux /tmp]# free total used free shared buffers cachedMem: 255268 238332 16936 0 85540 126384-/+ buf
2014-08-20 09:58:14
804
原创 linux 下内存泄露检测工具valgrind的使用
内存泄露检测,使用工具valgrind,能够检测具体哪一行代码创建的内存泄露。因该该工具只在程序结束时才统计信息,所以对于我们不退出的程序可以在运行一段时间后,直接ctrl+c停止,valgrind会统计目前的信息。使用以下选项:valgrind --leak-check=yes --trace-children=yes --show-reachable=yes --log-file=
2014-08-19 12:51:19
1175
转载 system函数返回值
system函数返回值2011年08月01 日星期一11:59转自:http://blog.cheyo.net/?p=42 例:status = system("./test.sh");1、先统一两个说法:(1)system返回值:指调用system函数后的返回值,比如上例中status为
2014-08-18 15:33:11
6229
转载 Socket的错误码和描述(中英文翻译)
//下面是Socket Error的错误码和描述:Socket error 0 - Directly send error Socket error 10004 - Interrupted function //call 操作被终止 Socket error 10013 - Permission denied //c访问被拒绝 Socket error 10014 - Ba
2014-08-01 13:14:30
1519
转载 c里面使用libcurl库实现发送post并获取post到的内容
以下是c代码的实现:#include #include #include #include #define POSTURL "http://www.xiami.com/member/login"#define POSTFIELDS "email=myemail@163.com&password=mypassword&autologin=1&submit=登 录&
2014-07-25 16:35:47
3185
转载 php curl_init函数用法
使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网 页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内 容,cURL 是一个功能强大的PHP库。PHP中的CURL函数库(Client URL Library Function)curl_close
2014-07-25 09:19:09
597
转载 使用libcurl进行文件上传
上篇博文讲到了如何使用multicurl来进行http并发访问,今天继续有关curl的主题,来八一八如何使用curl来上传文件,在介绍具体方法之前了解下目前http文件上传的基本实现。 rfc1867描述了如何使用http协议来上传客户端文件,目前基本上所有的浏览器和web服务器都支持http文件上传,它的使用也十分的简单,具体的来说就是在页面上创建一个form表单,表单的encty
2014-07-24 18:06:26
13168
原创 inet_ntoa在32位机器上没有问题,64位机器又问题
inet_ntoa用法如下:char *inet_ntoa(struct in_addr in); 就是将struct in_addr结构转换为IP地址的形式,struct in_addr这个结构应该不陌生吧,它的定义如下:
2014-07-24 11:53:04
1141
转载 HTTP协议中PUT和POST使用上的区别
http://hi.baidu.com/%CE%A2%D0%A6%C0%E1%CB%AE/blog/item/84fd8e3d93944350241f14cc.html 有的观点认为,应该用POST来创建一个资源,用PUT来更新一个资源;有的观点认为,应该用PUT来创建一个资源,用POST来更新一个资源;还有的观点认为可以用PUT和POST中任何一个来做创建或者更新一个资
2014-07-23 11:27:37
750
转载 Ubuntu 上安装及配置 Cherokee Web 服务器
Cherokee 号称是目前最快的 Web 服务器软件,据说在性能上甚至比 Nginx 还略胜一筹。Cherokee 的功能包括支持 FastCGI、SCGI、PHP、CGI、TLS 及 SSL 加密连接,虚拟主机,授权认证,实时编码,载入均衡,与 Apache 兼容的 log 文件等等。Cherokee 最具特色的地方在于内置了一个名为 cherokee-admin 的工具,执行
2014-07-23 11:08:30
875
原创 nginx中HTTP/1.1 405 Method not allowed 的解决方法
环境:nginx 1.0.10今天调试一个站点时,发现用post方式去请求一个静态页面时,返回 HTTP/1.1 405 Method not allowed 状态,无法正常显示页面。这里提供下网上的一些解决方法,供大家参考。方法一 复制代码代码如下:server{ listen 80; server_name test.bai
2014-07-22 17:03:52
25809
原创 libcurl官方实例代码(HTTP,FTP,上传下载等等)
http://curl.haxx.se/libcurl/c/example.html复制去Google翻译翻译结果
2014-07-21 16:19:53
5279
转载 CLOSE_WAIT状态的原因与解决方法
这个问题之前没有怎么留意过,是最近在面试过程中遇到的一个问题,面了两家公司,两家公司竟然都面到到了这个问题,不得不使我开始关注这个问题。说起CLOSE_WAIT状态,如果不知道的话,还是先瞧一下TCP的状态转移图吧。关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机
2014-07-16 15:56:18
737
转载 linux 下端口close_wait 过多
情景描述:系统产生大量“Too many open files” 原因分析:在服务器与客户端通信过程中,因服务器发生了socket未关导致的closed_wait发生,致使监听port打开的句柄数到了1024个,且均处于close_wait的状态,最终造成配置的port被占满出现“Too many open files”,无法再进行通信。 close_wait状态出现的原因是被动关闭方
2014-07-16 15:54:54
781
转载 跟一下wpa_supplicant(3-2) connect AP
转:http://blog.chinaunix.net/uid-20514606-id-3260320.html接前面(3-1)继续: 5. 接分支4.authenticate response 来了和前面一样:wpa_driver_nl80211_event_receive到=> process_event 收到 NL80211_CMD_AUTHE
2014-06-20 15:12:53
1875
转载 搭建自己的SIP服务器:开源sip服务器opensips的搭建及终端TwInkle的使用
先下载源码:这里我下载的是1.8.2,因为这个是目前的最稳定版本,(虽然已经有1.9及2.0了)http://opensips.org/pub/opensips/1.8.2/src/opensips-1.8.2_src.tar.gz编译前需要安装如下软件:apt-get install perl libdbi-perl libdbd-mysql-perl libdb
2014-06-16 10:01:56
1490
原创 嵌入式 uboot、fs、kernel制作和烧录简记-hi3518c
NULL RAM :mkdir ramdisk_test 临时挂在点dd if=/dev/zero of=rootfs.ramdisk bs=1k count=10000 建立空硬盘//15000(15M)losetup /dev/loop0 rootfs.ramdisk 挂在临时硬盘mke2fs -m 0 /dev/loop0 格式化此硬盘mount –
2014-06-12 16:07:28
5207
1
原创 嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结
1、在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以2、记住在使用printf进行调试的时候,在遇到指针或者字符串的时候最好使用“%x”,以为我不知道指针或者字符串中是否包含不可见字符,如果有不可见字符会导致错误,而且错误不好查找3、对于uboot中的环境变量,其实是放在uboot里面的,也就是环境变量占
2014-06-12 16:06:25
1988
转载 JFFS2文件系统制作
jffs2文件系统制作过程JFFS2 是一个开放源码的项目(www.infradead.org)。 它是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用。1. 安装mkfs工具MTD主页:http://www.linux-mtd.infradead.org/archive/index.html下载MTD:ftp://ftp.uk.linux.org/pu
2014-06-06 17:43:33
1925
原创 U-Boot 编译(嵌入式U-BOOT,kernel编译)
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- clean
2014-06-06 14:06:52
694
转载 STUN, STUNT, XSTUNT
STUN(From: http://zh.wikipedia.org/w/index.php?title=STUN&variant=zh-cn)STUN(Simple Traversal of User Datagram Protocol through Network Address Translators (NATs),NAT的UDP简单穿越)是一种网络协议,它允许位于NAT(
2014-05-16 17:52:17
917
转载 Linux C 编程内存泄露检测工具(二):memwatch
Memwatch简介在三种检测工具当中,设置最简单的算是memwatch,和dmalloc一样,它能检测未释放的内存、同一段内存被释放多次、位址存取错误及不当使用未分配之内存区域。请往http://www.linkdata.se/sourcecode.html下载最新版本的Memwatch。安装及使用memwatch很幸运地,memwatch根本是不需要安装的,因为它只是一组C程序代码
2014-05-07 14:20:38
10132
转载 Linux C 编程内存泄露检测工具(一):mtrace
前言所有使用动态内存分配(dynamic memory allocation)的程序都有机会遇上内存泄露(memory leakage)问题,在Linux里有三种常用工具来检测内存泄露的情況,包括:mtracedmallocmemwatch1. mtracemtrace是三款工具之中是最简单易用的,mtrace是一个C函數,在里声明及定义,函数原型为: void
2014-05-07 13:56:05
2026
转载 shell算数运算
((i=$j+$k)) 等价于 i=`expr $j + $k`((i=$j-$k)) 等价于 i=`expr $j -$k`((i=$j*$k)) 等价于 i=`expr $j \*$k`((i=$j/$k)) 等价于 i=`expr $j /$k`Let expressions 执行一个或多个表达式。表达式中的变量前不必有$.如果表达式中包含了空格或其他特殊字符,则必须引起
2014-05-06 16:33:31
464
原创 Linux下makefile 模板
makefile在Linux下写程序,程序多了,写makefile是有必要的,为了能提高效率,写个模板以后只需要稍微改改!
2014-04-30 16:17:45
636
原创 linux下串口通信
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。串口通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯也经常用到通讯方式之一。Lin
2014-04-15 15:23:21
2493
原创 交叉编译openssl
本次任务是要完成嵌入式Linux下对openssl程序的支持。 我的开发环境:ARM9开发板 和 嵌入式Linux操作系统。装有Linux系统(我的是ubuntu9.04)的PC机一台。串口和串口连接线。串口调试软件:minicom。交叉编译工具:arm-unknown-linux-gnu-gcc 下载最新版本的openssl-1.0.0: http://www.op
2014-03-27 14:50:12
19478
原创 linux下内存泄露调试
http://www.s135.com/post/419/ http://blog.chinaunix.net/uid-579481-id-163614.html http://blog.chinaunix.net/uid-16135252-id-2752984.html
2014-03-24 09:07:52
767
原创 Objective-C中的占位符,打印BOOL类型数据
常用的一些占位符:%@:字符串占位符%d:整型%ld:长整型%f:浮点型%c:char类型%%:%的占位符 尽管有那么多的占位符,但是好像没有发现BOOL型的数据的占位符,这也是比较纠结的地方,看了一下别人是怎么解决这个问题的 BOOL studyBool = YES; NSLog(@"打印BOOL型数据%@",studyBool?@"Y
2014-03-14 09:20:06
9950
原创 二维码的生成细节和原理
二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。关于QR Code Specification,可参看这
2014-02-26 15:46:36
4265
原创 进度条
#include#include #include int main(){ #if 0 int bootdelay = 10; printf("Hit any key to stop autoboot: %2d ", bootdelay); while(1) { printf("\b\b\b%2d ", bootdelay); sleep(1); } return
2014-02-26 10:52:23
633
原创 “简简单单”的问题~~~~
1.实现一个函数,计算1到n的和,当然n是变量不能出现以下:乘除操作,位操作,if-else,for,while,switch,?:三目运算符,全局变量,模版,标准库函数。(做出来后检查下是否有违上面的红字!!!!!!!!!!!!)2.printf("%f\n",10/3);这会输出什么???3.000000??还是别的什么?
2014-02-24 13:49:05
636
原创 蛇形矩阵
1 3 6 10 152 5 9 144 8 137 1211输出n行蛇形矩阵。 以上为一种蛇形矩阵,还有一种蛇形矩阵:1 3 4 10 112 5 9 126 8 137 1415我也给出程序:结果:
2014-02-24 13:49:03
557
原创 一个简简单单的问题
#include int main(){ charstr1[] = "abc"; charstr2[] = "abc"; constchar str3[] = "abc"; constchar str4[] = "abc"; char*str5 = "abc"; char*str6 = "abc"; printf("%d\n"
2014-02-24 13:49:00
611
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人