2014年1月10日

linux网络编程之网络函数详解

摘要: 1、epoll_create函数 函数声明:int epoll_create(int size) 该 函数生成一个epoll专用的文件描述符。它其实是在内核申请一空间,用来存放你想关注的socket fd上是否发生以及发生了什么事件。size就是你在这个epoll fd上能关注的最大socket fd数。随你定好了,前提是有足够的空间。2. socket 函数 函数原型 int socket(int domain, int type, int protocol); 应用程序调用socket函数来创建一个能够进行网络通信的套接字,即套接口描述文件字,它是一个整数,如同文件描述符一样,是内... 阅读全文

posted @ 2014-01-10 09:40 阳台 阅读(896) 评论(0) 推荐(0)

2014年1月9日

Linux下并发网络设计之I/O复用

摘要: I/O 流: 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。 现在假定一个情形,我 阅读全文

posted @ 2014-01-09 15:59 阳台 阅读(259) 评论(0) 推荐(0)

嵌入式系统 Boot Loader

摘要: 基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软件设计的主要任务以及结构框架等内容。 阅读全文

posted @ 2014-01-09 15:55 阳台 阅读(222) 评论(0) 推荐(0)

linux下curl编程

摘要: LibCurl是免费的客户端URL传输库,支持FTP,FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE ,LDAP等协议,其主页是http://curl.haxx.se/。Libcurl具备线程安全、IpV6兼容、易于使用的特点。本文档... 阅读全文

posted @ 2014-01-09 14:38 阳台 阅读(2516) 评论(0) 推荐(0)

c语言中-----分配内存函数

摘要: 原型: void * realloc(void *p, size_t size); realloc 可以对给定的指针所指的空间进行扩大 或者 缩小, 原有内存的数据保持不变。当然,对于缩小,则缩小部分的那一部分的内容会丢失; realloc 并不保证调整后的内存空间 和原来的内存空间保持同一内存地址。 而且 realloc 返回值很可能的是一个新的地址;这是因为realloc是从堆上分配内存的, 当扩大一块内存空间时,realloc直接从堆上现存的数据后面的那些字节中获得附加字节空间;但是如果数据后面的字节空间不够的话,那么就使用堆上第一个有足够大小的自由块,现存的数据拷贝到新的位置,而... 阅读全文

posted @ 2014-01-09 13:55 阳台 阅读(318) 评论(0) 推荐(0)

2014年1月8日

关于typedef之四种用途 和 两个陷进

摘要: typedef用来声明一个别名,typedef后面的语法,是一个声明。本来笔者以为这里不会产生什么误解的,但结果却出乎意料,产生误解的人 不在少数。罪魁祸首又是那些害人的教材。在这些教材中介绍typedef的时候通常会写出如下形式: typedef int PARA; 这种形式跟#define int PARA几乎一样,如前面几章所述,这些教材的宗旨是由浅入深,但实际做出来的行为却是以偏盖全。的确,这种形式在所有形式中是最简单的,但却没有对 typedef进一步解释,使得不少人用#define的思维来看待typedef,把int与PARA分开来看,int是一部分,PARA是另一部分, 但实际上 阅读全文

posted @ 2014-01-08 18:30 阳台 阅读(556) 评论(0) 推荐(0)

Libcurl安装及编译

摘要: 1.安装curl wget http://curl.haxx.se/download/curl-7.26.0.tar.gz tar -zxvf curl-7.26.0.tar.gz cd curl-7.26.0 ./configure --prefix=/usr/local/curl make make install 这里需要root权限2.查看当前已安装的curl版本 curl -V3.如果当前系统已经安装旧版本的curl而不想覆盖,或者没有root权限,可将curl安装到本地目录,即:修改prefix=后面的路径为:/home/目标目录。查看本地目录的版本需要进入目标目... 阅读全文

posted @ 2014-01-08 16:57 阳台 阅读(2202) 评论(0) 推荐(0)

linux线程之pthread_join和pthread_detach

摘要: 在任何一个时间点上,线程是可结合的(joinable)或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死。在 被其他线程回收之前,它的存储器资源(例如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 默认情况下,线程被创建成可结合的。为了避免存储器泄漏,每个可结合线程都应该要么被显示地回收,即调用pthread_join;要么通过调用pthread_detach函数被分离。int pthread_join(pthread_t tid, void**thread_return); 若成功则返回0,若出错则为非 阅读全文

posted @ 2014-01-08 10:22 阳台 阅读(1096) 评论(0) 推荐(0)

2014年1月4日

Linux系统源码安装过程中的prefix选项

摘要: 在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件除了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式。原因是:(1)没有类似rpm那样让人恼 火的包依赖关系,(2)源码安装灵活自由,适用于不同的平台,维护也十分方便。源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install),具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure)。Configure是个可执行脚本,他有很多选项,使 用命令./configure –help输出周详的选项列表, 阅读全文

posted @ 2014-01-04 16:50 阳台 阅读(409) 评论(0) 推荐(0)

2014年1月3日

linux之线程之互斥

摘要: 线程概述: 其实在Linux中,新建的线程并不是在原先的进程中,而是系统通过一个系统调用clone()。该系统copy了一个和原先进程完全一样的进程,并在这 个进程中执行线程函数。不过这个copy过程和fork不一样。copy后的进程和原先的进程共享了所有的变量,运行环境。这样,原先进程中的变量变... 阅读全文

posted @ 2014-01-03 19:06 阳台 阅读(534) 评论(0) 推荐(0)

导航