
linux
文章平均质量分 61
晴天里的风
这个作者很懒,什么都没留下…
展开
-
gethostbyname() -- 用域名或主机名获取IP地址
#include #include struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如"www.google.cn"等等。传出值,是一个hostent的结构。如果函数调用失败,将返回NULL。 struct hostent { cha转载 2012-05-28 11:07:10 · 544 阅读 · 0 评论 -
一步一步写算法(之开篇)
算法是计算机的生命。没有算法,就没有软件,计算机也就成了一个冰冷的机器,没有什么实用价值。很多人认为,算法是数学的内容,学起来特别麻烦。我们不能认为这种观点是错误的。但是我们也知道,软件是一种复合的技术,如果一个人只知道算法,但是不能用编程语言很好地实现,那么再优秀的算法也不能发挥作用。一个人只有有了很好的计算机知识和数学知识,才能在算法的学习上不断进步。不管算法都么简单,都要自己亲手实践,只有不转载 2012-07-24 14:22:11 · 842 阅读 · 1 评论 -
一步一步写算法(之循环和递归)
其实编程的朋友知道,不管学什么语言,循环和递归是两个必须学习的内容。当然,如果循环还好理解一点,那么递归却没有那么简单。我们曾经对递归讳莫如深,但是我想告诉大家的是,递归其实没有那么可怕。所谓的递归就是函数自己调用自己而已,循环本质上也是一种递归。 1)求和递归函数 我们可以举一个循环的例子,前面我们说过,如果编写一个1到n的求和函数怎么写呢,你可能会这么写:转载 2012-07-24 14:24:52 · 463 阅读 · 0 评论 -
一步一步写算法(之递归和堆栈)
看过我前面博客的朋友都清楚,函数调用主要依靠ebp和esp的堆栈互动来实现的。那么递归呢,最主要的特色就是函数自己调用自己。如果一个函数调用的是自己本身,那么这个函数就是递归函数。 我们可以看一下普通函数的调用怎么样的。试想如果函数A调用了函数B,函数B又调用了函数C,那么在堆栈中的数据是怎么保存的呢?函数A ^函数B | (地址递减)函数C |转载 2012-07-24 14:26:08 · 486 阅读 · 0 评论 -
一步一步写算法(之内存)
内存是程序运行的基础。所有正在运行的代码都保存在内存里面。内存需要处理各种各样的数据,包括键盘的数据、鼠标的数据、usb的数据、串口的数据、摄像头的数据,那么这些数据经过程序的处理之后,就要进行输出到串口、屏幕、usb等。 内存只有一个,但是程序里面的空间有很多种。但是内存中的数据类型只有几种,比如说全局中的数据、堆中的数据、临时堆栈中的数据。那么他们有什么区别呢?我们可以通过代码转载 2012-07-24 14:27:10 · 804 阅读 · 1 评论 -
ARM汇编中的ldr和adr的区别及其在uboot中相关源码的分析
ARM汇编中的ldr和adr的区别及其在uboot中相关源码的分析ARM汇编有ldr指令以及ldr、adr伪指令,它们都可以将标号表达式作为操作数,下面通过分析一段代码以及对应的反汇编结果来说明它们的区别。[plain] view plaincopyprint?ldr r0, _start adr r0, _start ldr r0, =_start _sta转载 2012-07-31 22:23:25 · 1175 阅读 · 0 评论 -
嵌入式资源网站
嵌入式资源网站一 、MailList1.MailList大全网址:http://news.gmane.org/描述:可以查到绝大部分开源项目的Maillist记录,如bluez、uboot等。碰到问题可以在里面搜索一下,相当方便。二、技术论坛 1.ChinaUnix技术社区 网址:http://bbs.chinaunix.net/index.php转载 2012-07-31 22:24:57 · 798 阅读 · 0 评论 -
U-Boot直接引导zImage内核
U-Boot直接引导zImage内核U-boot1.1.6只能只能就能过mkimage工具加工后的内核镜像文件。mkimage工具给zImage增加了一个64B大小的头。U-Boot是通过bootm命令来引导Linux内核的,bootm命令调用do_bootm函数来mkimage工具增加的头,最后调用do_bootm_linux函数引导去掉了mkimage工具增加的头的Linux内核,也就是z转载 2012-07-31 22:18:16 · 1193 阅读 · 0 评论 -
U-Boot串口初始化详解
U-Boot串口初始化详解目录零、概述一、init_baudrate二、serial_init三、console_init_f四、devices_init五、console_init_r六、打印信息七、为什么要使用devlist,std_device[]?零、概述上面这张图是U-Boot中串口设备驱动的流程,从寄存器级别的设置到最后终转载 2012-07-31 22:21:23 · 1250 阅读 · 0 评论 -
list.h使用实例
#include #include "list.h"struct person{ int age; int weight; struct list_head list;};int main(int argc, char* argv[]){ struct person *tmp; struct list_head *pos, *n; int age_i原创 2012-07-17 13:32:52 · 1002 阅读 · 0 评论 -
linux内核list.h 想熟练运用链表的必须课
#ifndef __LIST_H#define __LIST_H#if defined(WIN32)#define INLINE __inline#else#define INLINE inline#endif/* This file is from Linux Kernel (include/linux/list.h) * and modified by simp原创 2012-07-17 13:18:57 · 683 阅读 · 0 评论 -
setsockopt函数的用法
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL)); 2. 如果要已经处于连接状态的soket在调用closesocket后强制关转载 2012-05-21 22:08:39 · 556 阅读 · 0 评论 -
size_t ssize_t socklen_t
size_t ssize_t socklen_t转载▼杂谈 size_t解释一:为了增强程序的可移植性,便有了size_t,它是为了方便系统之间的移植而定义的,不同的系统上,定义size_t可能不一样。在32位系统上 定义为 unsigned int 也就是说在32位系统上是32位无符号整形。在64位系统上定义为 unsigned转载 2012-05-21 21:44:58 · 380 阅读 · 0 评论 -
linux下使用socket中的select完成单线程单进程多用户之间通信
linux下使用socket中的select完成单线程单进程多用户之间通信(2011-12-16 19:34:14)转载▼标签:杂谈 使用select函数可以以非阻塞的方式和多个socket通信。程序只是演示select函数的使用,功能非常简单,即使某个连接关闭以后也不会修改当前连接数,连接数达到最大值后会终止程序。1. 程序转载 2012-05-22 15:59:42 · 1019 阅读 · 0 评论 -
套接字绑定失败:已被占用问题
bind API 函数来绑定一个地址(一个接口和一个端口)到一个套接字端点。可以在服务器设置中使用这个函数,以便限制可能有连接到来的接口。也可以在客户端设置中使用 这个函数,以便限制应当供出去的连接所使用的接口。bind 最常见的用法是关联端口号和服务器,并使用通配符地址(INADDR_ANY),它允许任何接口为到来的连接所使用。bind 普遍遭遇的问题是试图绑定一个已经在使用的端口。转载 2012-05-22 09:05:56 · 8548 阅读 · 0 评论 -
Thumb指令
Thumb指令基本介绍 Thumb是ARM体系结构中一种16位的指令集。 从ARMv4T之后的ARM处理器有一种16-bit指令模式,叫做Thumb,也许跟每个条件式执行指令均耗用4位元的情形有关。Thumb指令集可以看作是ARM指令压缩形式的子集,它是为减小代码量而提出,具有16bit的代码密度。Thumb指令体系并不完整,只支持通用功能,必要时仍需要使用ARM指令,如进入异原创 2012-06-12 13:13:22 · 2289 阅读 · 0 评论 -
Linux 信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出转载 2012-05-23 10:19:56 · 322 阅读 · 0 评论 -
安装QT, 执行qt-sdk-linux-x86-opensource-2010.05.bin
安装QT, 执行qt-sdk-linux-x86-opensource-2010.05.bin 安装步骤:Qt下载地址: http://get.qt.nokia.com/qtsdk/qt-sdk-linux-x86-opensource-2010.05.bin对于一些不能执行*.bin的系统我们可以给这个文件加上执行权限命令如下:chmod a+x qt原创 2012-05-23 16:20:23 · 1809 阅读 · 0 评论 -
redhat enterprise 5 下安装QT4
redhat enterprise 5 下安装QT41.下载源代码 如 qt-everywhere-opensource-src-4.7.2.tar.gzhttp://qt.nokia.com/downloads-cn2.解压 #tar -zxvf qt-everywhere-opensource-src-4.7.2.tar.gz会生成qt-everywhere-opens原创 2012-05-23 16:42:41 · 1174 阅读 · 0 评论 -
RPM -qa | grep minicom
"|",是unix很有用的一个用法,俗称管道,把一个命令的输出作为下个命令的输入: rmp -qa "-q 查找 ; -a all所有; grep 正则表达匹配 所以,这个命令的含义就是" 查找所有和minicom服务相关的";用指令"rpm -qa | grep minicom"来确认是否安装了minicom,回车后会显示minicom 的版原创 2012-11-02 09:22:17 · 1259 阅读 · 0 评论