摘要: 方法1:形参给出第二维的长度 #include <stdio.h>void func(int n, char str[][5]){int i;for (i = 0; i < n; i++){printf("\nstr[%d] = %s\n", i, str[i]);}}int main(){char str[][5] = {"abc", "def", "ghi"};func(3, str... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 最近做项目时需要修改一下内核的配置,重新编译内核,于是到网上搜了个教程跟着做了,步骤大同小异。 进入/usr/src中发现fedora 11自带的源代码,进入后make,结果一直有错误,估计是发行版的内核做了优化之类的,具体原因不详。于是到kernel.org去down了2.6.25的source,经过多次尝试加资料收集,make menuconfig----》make(相当于make ... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 在内核2.4中堆栈是这么定义的:union task_union { struct task_struct task;unsigned long stack[INIT_TASK_SIZE/sizeof(long)]; };而INIT_TASK_SIZE只能是8K。 内核为每个进程分配一个task_struct结构时,实际上分配两个连续的物理页面(8192字节),如图所示。底部用作task_... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 数据空间技术 ----如何减少程序所需要数据的存储空间的技术 1,不存储,重新计算。 如果我们在需要某一个给定对象的任何时候,都对其进行重新计算而不保存,就可以减少该对象所需的空间。该方法用计算时间换空间,只使用于需要存储的对象可以根据其描述重新计算得到的情况。 2,稀疏数据结构 例1:稀疏矩阵的的存储(很多个0,或其他相同的项)。 例2:使用指针来共享大型对象可以消除存储同一对象的... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(372) 评论(0) 推荐(0) 编辑
摘要: mdadm,lvm工具提供强大的动态磁盘管理功能,两者都需要内核md的支持,故使用前需查看内核是否支持md,如果不支持需重新编译内核(最开始用的时候创建RAID设备出错,于是检查内核配置,发现没有multi-device的支持)。本文以创建RAID5为例,讲解mdadm的基本使用方法。 device drivers ---->multi-device suppo(RAID and LVM) <I... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 最强大的工具: http://www.google.com http://www.baidu.com 代码相关: google代码搜索:http://www.google.com/codesearch google代码:http://code.google.com 提供项目托管功能 sourceforge开源项目社区:http://www.sourceforge.net linux内核ftp... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 函数库分为静态库和动态库两种 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。 示例代码: 头文件 hello.h #ifndef _HELLO_H#define _HELLO_Hvoid hello(void);#endif 源文件 hello.c... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Litt... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 最近项目中需要在内核态使用RSA加密算法,加密算法对我来说是一篇空白,到网上了解了些,比较好的加密跟认证的库有openssl,crypto++等,但这些库很庞大,而且很多东西因为考虑到复用,而不是单独为实现一个RSA算法而实现,在用户态使用非常方便,只有下载openssl的源码,安装即可调用其实现的加密算库,包括AES,Blowfish,RSA,一系列散列算法MD4,MD5, SHA1等等。由于... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(723) 评论(0) 推荐(0) 编辑
摘要: 看虚拟文件系统的次数估计已经是两位数了,每次都有新的收获,这里把VFS涉及到的链表串起来总结一下,主要就是四大对象之间的串连,由于把这些串连关系放到一个图中,逻辑结构太过复杂,可看性太差。另外虚拟文件系统中链接关系比较复杂,下面是对深入理解VFS机制比较重要的一些链表的介绍。 文件系统类型file_system_type链表 其中,file_systems全局变量定义在fs/filesyste... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(446) 评论(0) 推荐(0) 编辑