上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 26 下一页
摘要: 有五种方式使进程终止:(1) 正常终止:(a) 从main返回。(b) 调用exit。(c) 调用_exit。(2) 异常终止:(a) 调用abort。(b) 由一个信号终止。按照ANSI C的规定,一个进程可以登记多至32个函数,这些函数将由exit自动调用。我们称这些函数为终止处理程序(exit handler),并用exit函数来登记这些函数。回一个值。exit以登记这些函数的相反顺序调用它们。同一函数如若登记多次,则也被调用多次。内核使程序执行的唯一方法是调用一个exec函数。进程自愿终止的唯一方法是显式或隐式地(调用exit)调用_exit。进程也可非自愿地由一个信号使其终止。#in 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(133) 评论(0) 推荐(0) 编辑
摘要: autotools的使用流程autoscan->aclocal->autoconf-> automake->configure以helloworld为例加以说明:1)新建helloworld.c,并修改代码如下: int main(int argc,char** argv) { printf("hello world!"); }2)autoscan:autoscan:生成configure.scan3)编辑configure.scan,并重命名为configure.in 内容如下: # -*- Run autoconf -*-# Process th 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 可穿戴计算技术浅析摘要可穿戴计算技术就是把计算机“穿”在身上进行应用的技术,该技术解放了人的双手,在对计算机操作时不影响双手做其他工作,其在工业,军事,医疗等方面有着广泛的应用,符合“以人为本”的发展思路。本文首先简单的介绍了可穿戴计算起源,基本特点及基本的应用模型;然后详细描述了可穿戴计算系统需要用到的关键技术;最后对全文进行了总结,对可穿戴计算技术的应用前景进行了分析。关键字可穿戴计算,移动计算,移动网络通信,微小型计算机1 可穿戴计算的起源 近几年来,在计算机领域出现了一个新的系统技术,这就是可穿戴计算技术(wearable computing)。顾名思义,可穿戴计算技术就是把计算机“穿 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 最近准备花点时间学习下shell脚本语言,一是考虑到对以后找工作有帮助,因为很多上班了同学还有去面试的同学都说有的公司还是比较看重写shell脚本这个技能的,二是自己的工作需要,可能要写一些简单的脚本,虽然刚学linux时看《鸟哥的私房菜》时学过点皮毛,但现在已经忘的差不多了,刚好借这个机会系统学习一下。先将基础知识复习了一下,为进一步深入学习做准备。Shell脚本第一行的#!当一个文件中开头的两个字符是#!时,内核会扫描该行其余的部分,看是否存在可用来执行程序的解释器的完整路径(中间如果出现任何空白符号都会略过),此外内核还会扫描是否有一个选项要传递给解释器,内核会以被指定的选项来引用解释器 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 单独编译某个内核模块编内核难免有的时候忘记了配置某个模块,导致该模块不可用,那是不是必须重新配置内核并重新编译呢,答案是否定的,完全可以单独编译某一个内核模块,我在使用最新的fuse-2.8.0-pre1时,发现其中已经没有fuse模块了,原来fuse从2.8版本开始就不包含内核模块了,其已作为内核源码的一部分发布。定位fuse模块内核代码/home/ydzhang/linux-2.6.19/fs/fuse/*.c查看其下的Makefile:# Makefile for the FUSE filesystem.obj-$(CONFIG_FUSE_FS) += fuse.ofuse-objs : 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(1198) 评论(0) 推荐(0) 编辑
摘要: 最近又碰到一个熟悉的问题,在准备修改代码的时候,刚开始只准备对一个地方做修改,结果写着写着有冒出很多想法,于是就一直改一直改,等把几个想法的代码完成之后,运行的时候碰到一些逻辑的错误,由于修改的地方太多,一下子也分析不出来是哪里出错了,然后很郁闷的定位错误,修改代码,直到功能正常,有时花在调试上的时间比重新写一遍还要长很多。版本控制工具给我们的开发工作带来很多便利,而我们使用svn commit这个动作往往很“吝啬”,这样svn都发挥不了自己的优势了,做版本控制时,每次修改最好只针对某一功能模块,写完之后commit并附上log信息,这样即使改完后有错误,也能马上定位错误源,从而提高效率。管理 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(95) 评论(0) 推荐(0) 编辑
摘要: UCARP允许多个主机共享一个虚拟的ip地址,以提供自动的故障恢复功能,当其中某个主机宕机时,其它的主机会自动接管服务。UCARP是CARP协议(通用地址冗余协议,最早在OpenBSD上实现)的linux实现版本,同时也能移植到其它多个unix平台,UCARP的官方网站:http://www.ucarp.org/project/ucarp 。 CARP协议的特点在于其非常低的开销,主机间使用加密数据传递信息,并且在冗余主机之间不需要任何额外的网络链接。下载ucarp源代码包:http://download.pureftpd.org/pub/ucarp/,在README中有ucarp的简单部署实 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 最近学习块设备驱动程序的编写,在网上发现一个题为“写一个块设备驱动“的教程,共包含15章,教程最先是在chinaunix论坛上发的,很多人的博客都转载了这组文章,是一个叫赵磊的大牛写的,拜读了一下,教程写得通俗易懂,很有收获。本文对这组文章的内容进行了简要的概括,并附上每章的链接,当然,你google一下也能找到一大堆。第一章内容概括:模块的编写,块设备的基础编程结构,gendisk及其request_queue的管理,简单块设备驱动的实现(初始化gendisk,实现request_queue的处理方法),对块设备进行格式化文件系统并使用。链接1:http://hi.baidu.com/jjb 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 最近在使用filp_open打开文件时遇到到一个问题,当打开一个并不存在的文件时,filp_open返回值值为0xfffffffe,而并不是0(NULL),这是因为内核对返回指针的函数做了特殊处理。内核中的函数常常返回指针,通常如果调用出错,会返回NULL空指针,但linux做了更精妙的处理,能够通过返回的指针体现出来。对任何一个指针,必然有三种情况:一种是有效指针,一种是NULL,空指针,一种是错误指针,或者说无效指针。而所谓的错误指针就是指其已经到达了最后一个page,比如对于32bit的系统来说,内核空间最高地址0xffffffff,那么最后一个page就是指的0xfffff000~0x 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(1666) 评论(2) 推荐(0) 编辑
摘要: 1,字符向整型扩展时,是否保留符号位,有的实现为保留符号位,有的则在高位直接用0填充而不保留符号位。2,右移位时,空出的位填充的值,有的C语言实现为补0,有的则补符号位。3,移位计数的限制,如对int型数据,通常为不超过该类型的位数,即对int移位不能超过32。4,内存位置0,有的C语言实现对0内存位置实施了硬件级保护,不允许读写;有的实现为只读;有的则可读,可写。 5,如果(a)当main调用e... 阅读全文
posted @ 2013-04-19 14:06 ydzhang 阅读(323) 评论(0) 推荐(0) 编辑
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 26 下一页