linux驱动程序设计(转)
linux驱动程序设计(转)[@more@]PROGRAM FOR BLOCK DEVICE DRIVER OF DEVFS TYPE对linux的devfs类型的驱动程序的编写可以从以下几大内容理解和入手:通过分析驱动程序源代码可以发现驱动程序一般可分三部分:核心数据结构;核心数据和资源的初始化,注册以及注消,释放;底层设备操作函数;A.核心数据结构struct file_operations fops 设备驱动程序接口struct file_operations {struct module *owner;loff_t (*llseek) (struct file *, loff_t, int);ssize_t (*read) (struct file *, char *, size_t, loff_t *);ssize_t (*write) (struct file *,
LINUX在嵌入式系统上的实践和探讨(转)
LINUX在嵌入式系统上的实践和探讨(转)[@more@]LINUX在嵌入式系统上的实践和探讨1。实践目的在一个成熟的嵌入式硬件平台上,安装KERNEL 2.6的LINUX;以实践一个嵌入式系统的开发初步。2。硬件平台VIA公司的EmCore-V611V12r/E533其平台主要应用于瘦客户机、机顶盒、查询机、网关防火墙、服务器等。相对硬件配置高,条件也不苛刻,但对软件的扩展、升级等要求高。VIA公司的VEPD是X86架构在Embedded系统的延伸,所以软件的可移殖利用性强,开发周期短等特点。3。安装LINUXA. 初始化CF卡将CF卡插在宿主机的ID1上。格式化CF卡,建立文件系统。CF
c++经典(转)
c++经典(转)[@more@]下面的是学C++时要注意的。1.把C++当成一门新的语言学习(和C没啥关系!真的。);2.看《Thinking In C++》,不要看《C++变成死相》;3.看《The C++ Programming Language》和《Inside The C++ ObjectModel》,不要因为他们很难而我们自己是初学者所以就不看;4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;6.会用Visual C++,并不说明你会C++;7.学class并不难,templa
GCC 使用指南及gcc最佳编译参数(转)
GCC 使用指南及gcc最佳编译参数(转)[@more@]GCC 使用指南使用语法:gcc [ option | filename ]... g++ [ option | filename ]...其中 option 为 gcc 使用时的选项(后面会再详述), 而 filename 为欲以 gcc 处理的文件说明:这 C 与 C++ 的 compiler 已将产生新程序的相关程序整合起来。产生一个新的程序需要经过四个阶段:预处理、编译、汇编、连结,而这两个编译器都能将输入的文件做不同阶段的处理。虽然原始程序的扩展名可用来分辨编写原始程序码所用的语言,但不同的compiler,其预设的处理程序却各不相同:gcc 预设经由预处
使用wxdindows开发跨平台的界面(转)
使用wxdindows开发跨平台的界面(转)[@more@]使用wxdindows开发跨平台的界面 无双 发表于loveunix.netmushuang.forumer.comlinuxsir.com转载请保留出处 使用wxwindows开发的一个例子添加新的投票 | 订阅此主题 | 邮寄此主题 | 打印此主题无双 发帖时间 2004-04-01 21:21:36天才猪组别: 管理员金钱: 3555 两帖子数量: 1036精华帖数: 47注册时间: 2003-09-16照着例子进行了半个小时写出了一个简单的例子 当然后面会在它上面添加功能 目标是实现一个邮件客户端(与linuxaid的某兄打赌的 欢迎大家参与 如果想参与的话分一下工好了 )WxWindo
菜鸟图解简单链表(转)
菜鸟图解简单链表(转)[@more@]代码:#include <stdio.h>{long num;float score;struct student *next;};int main(){struct student a, b, c, *next, *p;a.num = 99101; a.score = 89.5;b.num = 99103; b.score = 90;c.num = 99107; c.score = 85;head = &a;a.next = &b;b.next = &c;c.next = NULL;p = head;do{printf("%ld %5.1f ", p ->num, p ->score);p = p -> next;}while ( p != NULL);} [myimg]upload/005_205.png[/myimg][myimg]upload/004_170.png[/myimg][myimg]upload/003_195.png[/myimg][myimg]upl
qmail-local代码分析(转)
qmail-local代码分析(转)[@more@]我分析的代码没有“夜未眠”大哥的好,可能还有的不正确,就请各位多多指教,谢谢代码:#include <sys/types.h>#include <sys/stat.h>#include "readwrite.h"#include "sig.h"#include "env.h"#include "byte.h"#include "exit.h"#include "fork.h"#include "open.h"#include "wait.h"#include "lock.h"#include "seek.h"#include "substdio.h"#include "getln.h"#include "strerr.h"#include "subfd.h"#include "sgetopt.h"#include "alloc.h"#include "error.h"#include "stralloc.h"#includ
Linux程式设计之三(转)
Linux程式设计之三(转)[@more@]Linux程式设计-12.目录操作http://www.openchess.org/noitatsko/programming/ (2001-05-26 10:08:00)Linux下的目录是依照标准来实作的,因此,您可以毫无问题地移殖到任何其它UNIX平台。--------------------------------------------------------------------------------getcwd/getwd : 取得目前所在目录--------------------------------------------------------------------------------#includechar * getcwd(char *buf,size_t size);buf将会返回目前路径名称。任何的错误发生,将会返回NULL。如果路径
Linux程式设计之一(转)
Linux程式设计之一(转)[@more@]Linux程式设计 - 1.forkhttp://www.openchess.org/noitatsko/programming/ (2001-05-24 14:08:00)在UNIX程式设计中,学会fork()的运用,算是相当基本的功夫。fork()及signal经常运用在daemon守护神这一类常驻程式,另外像a4c.tty/yact/chdrv这些中文终端机程式也有用到,一般如Mozilla/Apache/Squid等大程式几乎都一定会用到。--------------------------------------------------------------------------------程序分歧fork()fork()会产生一个与父程序相同的子程序,唯一不同之处在於其process id(pid)。如
“笑”傲流媒体―SMIL基础教程(转)
“笑”傲流媒体―SMIL基础教程(转)[@more@]“笑”傲流媒体―SMIL基础教程2002年05月14日13:38:37 5d 多媒体 litteruser一、 简介随着流技术的成熟和广泛的应用,其优点我们有了深深的体会。但是,其不足之处也逐渐体现出来。问题的出现,就要求我们想办法来解决。SMIL正是针对目前流技术中的问题而提出来的。下面让我们来仔细看看SMIL。1、SMIL简历SMIL是同步多媒体集成语言(Synchronized Multimedia Integration Language)的缩写,念做smile(呵呵,这名字不错吧)。它是由3W(World Wide Web Consortium)组织规定的多媒体操纵语言。最新的
来研究一下yahoo的酷图幻灯js代码(转)
来研究一下yahoo的酷图幻灯js代码(转)[@more@]http://cn.sports.yahoo.com/040109/262/1ypby.htmljs代码如下:var PUisIE_NAV4 = false;if (parseFloat(navigator.appVersion) >= 4) {PUisIE_NAV4 = true;}var PUwinWidth='740';var PUwinHeight='320';var PUtimes = 1; /* number of times to show ad. if > times, then redirect thru *///var PUtheDomain = ".cn.yahoo.com";var PUtheDomain = document.domain;var PUexpiresIn = 4/24; /* days between shows of the ad */function errorsuppressor(){return true}window.onerr
使用net-snmp API编程(转)
使用net-snmp API编程(转)[@more@] 在一个项目中使用了Redback SMS10000 的接入服务器,作为附加要求,需要做一个snmp的接口程序,目的是起发送一个subscriber reauth 的 snmp 包给接入服务器; 由于snmp的例程相对较少,所以在此截选程序中的snmp 相关部分以后,做一个注脚,记录下来。 程序使用了net-snmp 的API,所以系统要预先安装net-snmp; 编译时需要使用带入netsnmp的行命令:gcc -o redweb redweb.c -lkstat -lm -lsocket -ladm -lnetsnmp -lcrypto 不要更多罗嗦了,都写在程序里了。所谓知识无价值。static char s
正则表达式中的特殊字符(转)
正则表达式中的特殊字符(转)[@more@]字符/ 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。 例如:/b/匹配字符’b’,通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示 匹配一个单词的分界线。 或者: 对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。 例如:*是一个特殊字符,匹配任意个字符(包括0个字符);例如:/a*/意味匹配0个或多个a。为了匹配字面上的*,在a前面加一个反斜杠;例如:/a*/匹配’a*’。 字符^ 意义:表示匹配的字符必须在最前边。 例如:
正则表达式使用详解(转)
正则表达式使用详解(转)[@more@]作者:吕晓波 如果我们问那些UNIX系统的爱好者他们最喜欢什么,答案除了稳定的系统和可以远程启动之外,十有八九的人会提到正则表达式;如果我们再问他们最头痛的是什么,可能除了复杂的进程控制和安装过程之外,还会是正则表达式。那么正则表达式到底是什么?如何才能真正的掌握正则表达式并正确的加以灵活运用?本文将就此展开介绍,希望能够对那些渴望了解和掌握正则表达式的读者有所助益。入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在几乎所有的基于UNIX系
LINUX系统中动态链接库的创建与使用(转)
LINUX系统中动态链接库的创建与使用(转)[@more@]大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library)。这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间共享,节省了空间,提高了效率,具备很高的灵活性,得到越来越多程序员和用户的青睐。那么,在LINUX系统中有无这样的函数库呢?答案是肯定的,LINUX的动态链接库不仅有,而且为数不少。在/lib目录下,就有许多以.so作后缀的文件,这就是LINUX系
Linux程式设计-11.Shell Script(bash)--(3)用於自动备份的Shell Script(转)
Linux程式设计-11.Shell Script(bash)--(3)用於自动备份的Shell Script(转)[@more@]from: http://www.openchess.org/noitatsko/programming/一个用於自动备份的Shell Script我们先前提到,可利用Shell Script搭配crond来作定期的工作。要作定期性的工作,在UNIX上,就是与crond的搭配运用。--------------------------------------------------------------------------------首先我们先来研究如何对系统进行备份。要对系统进行备份,不外乎便是利用一些压缩工具。在许多UNIX系统上,tar及gzip是de facto的资料交换标准。我们经常可以看见
autoconf手册(九)(转)
autoconf手册(九)(转)[@more@]陈旧的宏名在Autoconf的第2版,大部分宏被重新命名以使用更加统一和具有描述性的命名方案。下面是被重新命名了的宏的原来名字,随后给出了这些宏现在的名字。虽然为了保持向后兼容,旧名字仍然能够被autoconf程序所接受,旧名字都被看作过时的。关于新的命名方案,参见宏名。AC_ALLOCAAC_FUNC_ALLOCAAC_ARG_ARRAY因为用途有限而被删除了。AC_CHAR_UNSIGNEDAC_C_CHAR_UNSIGNEDAC_CONSTAC_C_CONSTAC_CROSS_CHECKAC_C_CROSSAC_ERRORAC_MSG_ERRORAC_FIND_XAC_PATH_XAC_FIND_XTRAAC_PATH_XTRAAC_FUNC_CHECKAC_CH
autoconf手册(七)(转)
autoconf手册(七)(转)[@more@]获取规范的系统类型下列的宏使得configure脚本可以获得系统类型。它们运行shell脚本config.guess以确定用户在命令行中没有给出的、它们需要的关于主机、目标和创建类型的所有值。它们运行config.sub对用户给出的任何别名进行规范化。如果你使用这些宏,你必须把这两个shell脚本与你的源代码一同发布。关于 AC_CONFIG_AUX_DIR的信息,你可以通过该宏设置configure查找这些脚本的目录,请参见创建输出文件。如果你没有使用这些宏中的任意一个,configure 就忽略任何传递给它的`--host'、`--target'和`--build'选项
autoconf手册(五)(转)
autoconf手册(五)(转)[@more@]编写测试如果现有的特征测试不能完成你所需要的工作,你就必须编写一个新的。这些宏是创建模块。它们为其它宏提供了检查各种特征是否存在并且报告结果的方式。本章包括一些建议和一些关于现有的测试的为什么要那样编写的原因。通过阅读现有的测试,你还可以学到许多关于编写 Autoconf测试的方法。如果在一个或多个Autoconf测试中出现了错误,这些信息可以帮助你理解它们意味着什么,这有助于你找到最佳的解决问题的办法。这些宏检查C编译器系统的输出。它们并不为未来的使用而缓存测试的结果(参见缓存结果
autoconf手册(六)(转)
autoconf手册(六)(转)[@more@]AC_DEFINE(EQUATION, "$a > $b")宏: AC_DEFINE_UNQUOTED (variable [, value [, description]])类似于AC_DEFINE,但还要对variable和value进行三种shell替换(每种替换只进行一次):变量扩展(`$'),命令替换(``'),以及反斜线传义符(`')。值中的单引号和双引号没有特殊的意义。在variable或者value是一个shell变量的时候用本宏代替 AC_DEFINE。例如:AC_DEFINE_UNQUOTED(config_machfile, "${machfile}")AC_DEFINE_UNQUOTED(GETGROUPS_T, $ac_cv_type_getgroups)AC_DEFINE_UNQUOTED(${ac_tr_hdr