<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一草一木的专栏]]></title><description><![CDATA[一点一滴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 壮志在心]]></description><link>https://blog.youkuaiyun.com/grasspower</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; grasspower]]></copyright><item><title><![CDATA[套接口选项]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2940701</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2940701</guid><author>grasspower</author><pubDate>Wed, 17 Sep 2008 09:29:00 +0800</pubDate><description><![CDATA[ 套接口选项本文出自:http://sunsland.top263.net 作者: (2001-10-23 09:00:00)获取和设置影响套接口选项的函数:getsockopt :获取套接口选项 setsockopt: 获取套接口选项 fcntl: 设置套接口为非阻塞I/O型信号驱动I/O型等 oictl 套接口选项 SO-KEEPALIV]]></description><category></category></item><item><title><![CDATA[socket编程：SO_REUSEADDR例解 ]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2940668</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2940668</guid><author>grasspower</author><pubDate>Wed, 17 Sep 2008 09:25:00 +0800</pubDate><description><![CDATA[socket编程：SO_REUSEADDR例解                                             kevintz 2000-6-19     网友vmstat多次提出了这个问题：SO_REUSEADDR有什么用处和怎么使用。而且很多网友在编写网络程序时也会遇到这个问题。所以特意写了这么一篇文章，希望能够解答一些人的疑难。     其实这个问题在Richard ]]></description><category></category></item><item><title><![CDATA[OS-9]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2934922</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2934922</guid><author>grasspower</author><pubDate>Tue, 16 Sep 2008 10:02:00 +0800</pubDate><description><![CDATA[ OS-9是Microware系统开发的实时操作系统，专门用于嵌入式应用程序。OS-9采用模块化体系结构，可以方便的改变配置并升级。OS-9可以支持一系列应用程序，应用范围包括网络、网页浏览、图形处理、视频会议以及多媒体领域。 　　OS-9的重要特性是支持电源管理、输入/输出管理、灵活的输入/输出架构、支持标准以及自定义网络协议、内置多媒体支持、加载了用于嵌入式应用程序的Java解决方案，同时]]></description><category></category></item><item><title><![CDATA[几个重要的Linux系统内核文件介绍]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2934884</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2934884</guid><author>grasspower</author><pubDate>Tue, 16 Sep 2008 09:56:00 +0800</pubDate><description><![CDATA[ 在网络中，不少服务器采用的是Linux系统。为了进一步提高服务器的性能，可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核，需要根据规定的步骤进行，编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux，在/boot目录下有一些与Linux内核有关的文件，进入/boot执行：ls –l。编译过RedHat Linux内核的人对其中的System.map 、vml]]></description><category></category></item><item><title><![CDATA[如何编写Linux设备驱动程序 （转）]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2934789</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2934789</guid><author>grasspower</author><pubDate>Tue, 16 Sep 2008 09:33:00 +0800</pubDate><description><![CDATA[Linux是Unix操作系统的一种变种，在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统，但它dos或window环境下的驱动程序有很大的区别。在Linux环境下设计驱动程序，思想简洁，操作方便，功能也很强大，但是支持函数少，只能依赖kernel中的函数，有些常用的操作要自己来编写，而且调试也不方便。本人这几周来为实验室自行研制的一块多媒体卡编制了驱动程序，获得了一些经验，愿与L]]></description><category></category></item><item><title><![CDATA[中秋之后]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2934540</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2934540</guid><author>grasspower</author><pubDate>Tue, 16 Sep 2008 08:26:00 +0800</pubDate><description><![CDATA[学习着、工作着、进步着、快乐着]]></description><category></category></item><item><title><![CDATA[ioctl ]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2917787</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2917787</guid><author>grasspower</author><pubDate>Fri, 12 Sep 2008 15:37:00 +0800</pubDate><description><![CDATA[ 函数名: ioctl 功 能: 控制I/O设备 用 法: int ioctl(int handle, int cmd,[int *argdx, int argcx]); include/asm/ioctl.h中定义的宏的注释：#define   _IOC_NRBITS        8                               //序数（number）字段的字位宽度，8bits]]></description><category></category></item><item><title><![CDATA[gcc中格式化输出函数的研究 ]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2917437</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2917437</guid><author>grasspower</author><pubDate>Fri, 12 Sep 2008 14:19:00 +0800</pubDate><description><![CDATA[ 函数具体介绍1printf()函数　　printf()函数是格式化输出函数系列中比较有具有普遍特点的, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:　　printf("", );　　#include　　#include　　int main()　　{　　char c, s[20], *p;　　int a=1234, *i]]></description><category></category></item><item><title><![CDATA[msgsnd/msgrcv]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2914050</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2914050</guid><author>grasspower</author><pubDate>Thu, 11 Sep 2008 16:04:00 +0800</pubDate><description><![CDATA[消息队列允许长度可变、数目可变的消息排队。任何任务或中断服务程序可以发送消息到消息队列。任何任务可从消息队列接收消息。关于此消息队列的一些常用函数如下： int msgget(key_t key, int msgflg)int msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)ssize_t msgrcv (int msqi]]></description><category></category></item><item><title><![CDATA[select()系统调用和文件描述符集fd_set 转]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2912031</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2912031</guid><author>grasspower</author><pubDate>Thu, 11 Sep 2008 10:12:00 +0800</pubDate><description><![CDATA[在网络程序中，一个进程同时处理多个文件描述符是很常见的情况。select()系统调用可以使进程检测同时等待的多个I/O设备，当没有设备准备好时，select()阻塞，其中任一设备准备好时，select()就返回。select()的调用形式为：#include #include int select(int maxfd, f]]></description><category></category></item><item><title><![CDATA[sockaddr_in/]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2911473</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2911473</guid><author>grasspower</author><pubDate>Thu, 11 Sep 2008 08:44:00 +0800</pubDate><description><![CDATA[sockaddr_in（在netinet/in.h中定义）：struct sockaddr_in {short int sin_family;                      /* Address family */unsigned short int sin_port;       /* Port number */struct in_addr sin_addr;           ]]></description><category></category></item><item><title><![CDATA[Linux常用C函数-接口处理篇 zhuan]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2909719</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2909719</guid><author>grasspower</author><pubDate>Wed, 10 Sep 2008 15:53:00 +0800</pubDate><description><![CDATA[accept（接受socket连线）  相关函数  socket，bind，listen，connect表头文件  #include#include定义函数  int accept(int s,struct sockaddr * addr,int * addrlen);函数说明  accept()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen()函数处理过]]></description><category></category></item><item><title><![CDATA[C语言中可变参数的用法]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2908975</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2908975</guid><author>grasspower</author><pubDate>Wed, 10 Sep 2008 14:01:00 +0800</pubDate><description><![CDATA[ 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的:int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的,例如我们可以有以下不同的调用方法:printf("%d",i);printf("%s",s);printf("the number is %d ,str]]></description><category></category></item><item><title><![CDATA[msgget、tm结构]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2907964</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2907964</guid><author>grasspower</author><pubDate>Wed, 10 Sep 2008 10:49:00 +0800</pubDate><description><![CDATA[  msgget()系统调用msgget()     如果希望创建一个新的消息队列，或者希望存取一个已经存在的消息队列，你可以使用系统调用msgget()。 系统调用：msgget(); 原型：intmsgget(key_t key,int msgflg); 返回值：如果成功，返回消息队列标识符 如果失败，则返回-1：errno=EACCESS(权限不允许) EEXIST(队列已经存在]]></description><category></category></item><item><title><![CDATA[信号量和临界区]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2907514</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2907514</guid><author>grasspower</author><pubDate>Wed, 10 Sep 2008 09:51:00 +0800</pubDate><description><![CDATA[  学习目标：学习信号量及其属性进行同步实验研究临界区的行为使用POSIX命名信号量和无名信号量理解信号量的管理1. 临界区临界区是指必须以互斥的方式执行的代码段，也就是说临界区范围内只能由一个活动的线程。例如：修改共享变量的过程中其他的执行线程可能会访问共享变量，那么修改共享变量的代码就被看成是临界区的一部分。临界区问题指用安全、公平和对称的方式来执行临界区代]]></description><category></category></item><item><title><![CDATA[获得Mac的地址]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2907210</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2907210</guid><author>grasspower</author><pubDate>Wed, 10 Sep 2008 09:00:00 +0800</pubDate><description><![CDATA[#include stdio.h>#include string.h>#include sys/ioctl.h>#include sys/socket.h>#include netinet/in.h>#include net/if.h>int main(int argc, char *argv[]){    int i;        /**//* get mac */    struct ifr]]></description><category></category></item><item><title><![CDATA[ioctl ---IO通道管理函数]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2907101</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2907101</guid><author>grasspower</author><pubDate>Wed, 10 Sep 2008 08:46:00 +0800</pubDate><description><![CDATA[in_addr是存储ip地址的结构体     struct   in_addr{             u_int32_t   s_addr;     };         ifreq是跟网络接口有关的结构     /*       *   interface   request   structure   used   for   socket       *   ioctls.     al]]></description><category></category></item><item><title><![CDATA[同步异步]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2906004</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2906004</guid><author>grasspower</author><pubDate>Tue, 09 Sep 2008 20:16:00 +0800</pubDate><description><![CDATA[ 同步和异步的区别 举个例子：普通B/S模式（同步）AJAX技术（异步）同步：提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事异步: 请求通过事件触发->服务器处理（这是浏览器仍然可以作其他事情）->处理完毕     同步就是你叫我去吃饭，我听到了就和你去吃饭；如果没有听到，你就不停的叫，直到我告诉你听到了，才一起去吃饭。 异步就是你叫我，然后自己去吃饭，我得到消息后可]]></description><category></category></item><item><title><![CDATA[信号量]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2905514</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2905514</guid><author>grasspower</author><pubDate>Tue, 09 Sep 2008 17:24:00 +0800</pubDate><description><![CDATA[信号量　　信号量本质上是一个非负的整数计数器，它被用来控制对公共资源的访问。当公共资源增加时，调用函数sem_post（）增加信号量。只有当信号量值大于０时，才能使用公共资源，使用后，函数sem_wait（）减少信号量。函数sem_trywait（）和函数pthread_ mutex_trylock（）起同样的作用，它是函数sem_wait（）的非阻塞版本。下面我们逐个介绍和信号量有关的一些函数，]]></description><category></category></item><item><title><![CDATA[金日工作]]></title><link>https://blog.youkuaiyun.com/grasspower/article/details/2904050</link><guid>https://blog.youkuaiyun.com/grasspower/article/details/2904050</guid><author>grasspower</author><pubDate>Tue, 09 Sep 2008 13:56:00 +0800</pubDate><description><![CDATA[今日正式开工，1、SIP协议重新复习 struct   ifreq   {         char         ifr_name[IFNAMSIZ];     /*   interface   name,   e.g.,   "le0 "   */         union   {                 struct     sockaddr   ifru_addr;  ]]></description><category></category></item></channel></rss>