- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 Linux核心数据结构
本章列出了Linux实用的主要数据结构。 block_dev_struct此结构用于向核心登记块设备,它还被buffer cache实用。所有此类结构都位于blk_dev数组中。 struct blk_dev_struct { void (*request_fn)(void); struct request * current_request;
2006-11-01 14:34:00
1911
原创 Linux文件系统
本文中要介绍一个所谓的"Linux 文件系统的守护神",这是指一个能实时地观察 Linux 文件系统的变化情况的程序模块。能够实时的观察文件系统的变化情况,并做出及时的适当的反应,这对于应用 Linux 做桌面计算机系统来说,是十分的有趣,也是十分的重要的。本文还要介绍 Linux 文件系统的异步 I/O 的扩展。同样,这对于 Linux 系统的桌面应用也是关键的。Linux 文件系统的守护神
2006-10-31 12:26:00
1369
原创 exit()子程序终止函数与return()函数的差别
exit()子程序终止函数与return()函数的差别 在main函数中我们通常使用return (0);这样的方式返回一个值。 但这是限定在非void情况下的也就是void main()这样的形式。 exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束跳会操作系统。 但在如果把exit用在main内的时候无论ma
2006-10-26 20:40:00
3180
1
原创 Linux 文件类型及文件的扩展名
1、Linux文件的扩展名; 一谈到文件类型,大家就能想到Windows的文件类型,比如file.txt、file.doc、file.sys、file.mp3、file.exe等,根据文件的后缀就能判断文件的类型。但在Linux一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性有关。但我们了解一下Linux文件的后缀名还是有必要的,特别是我们自己创建一些文件,最好还是
2006-10-26 20:16:00
1734
原创 exit和_ exit函数
exit和_exit函数用于正常终止一个程序: _exit立即进入内核,exit则先执行一些清除处理(包括调用执行各终止处理程序,关闭所有标准I / O流等),然后进入内核。使用不同头文件的原因是:exit是由ANSI C说明的,而_exit则是由POSIX.1说明的。 由于历史原因,exit函数总是执行一个标准I/O库的清除关闭操作:对于所有打开流调用 fclose
2006-10-26 20:05:00
4478
原创 各层交换机的区别及一些术语
(一)二层交换技术 二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。具体的工作流程如下: (1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的; (2)再去读取包头中的目的
2006-10-22 10:56:00
2128
原创 线程与进程的区别
多线程共存于应用程序中是现代操作系统中的基本特征和重要标志。用过UNIX操作系统的读者知道进程,在UNIX操作系统中,每个应用程序的执行都在操作系统内核中登记一个进程标志,操作系统根据分配的标志对应用程序的执行进行调度和系统资源分配,但进程和线程有什么区别呢? 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程
2006-10-22 10:33:00
2124
原创 关键字volatile有什么含意?
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic varia
2006-10-19 19:35:00
1236
转载 makefile规则(转)
转自:http://www.linuxmine.com/1008.html 目录1.简介 31.1.准备工作 31.2.Makefile介绍 31.3.规则简介 41.4.make工作原理 41.5.使用变量 51.6.简化命令 61.7.另一种风格 61.8.清理 72.Makefile 72.1.makefile名字 72.2.包含 82.3.‘MAKEFILE’变量 82.4.如何重新生
2006-10-19 19:29:00
1489
1
转载 关于makefile(转)
转自:http://www.linuxmine.com/1007.html 0) 介绍本文将首先介绍为什么要将你的C源代码分离成几个合理的独立档案,什么时候需要分,怎么才能分的好。然后将会告诉你GNU Make怎样使你的编译和连接步骤自动化。对于其它Make工具的用户来说,虽然在用其它类似工具时要做适当的调整,本文的内容仍然是非常有用的。如果对你自己的编程工具有怀疑,可以实际地试一试,但请先阅
2006-10-19 19:26:00
1213
原创 什么是交叉编译(转)
转自:http://bbs.lupaworld.com/htm_data/228/0608/21177.html一、什么是交叉编译什么是交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也
2006-10-19 19:10:00
1843
原创 unix中的 ourhdr.h 头文件
/*Our own header, to be included after all standard system headers*/#ifndef __ourhdr_h #define __ourhdr_h #include /*for definition of errno */#include
2006-09-28 15:45:00
2202
1
原创 各种排序
选择法排序: 选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。#include int selectSort( int x[], int );int main(){ int *p; int i; int a[10] = { 3,6,10,54,32,24,56,26,9
2006-09-22 22:43:00
1594
1
转载 10000的阶乘的算法(大数的阶乘)
出自http://confach.cnblogs.com/archive/2005/07/14/192703.aspx为什么不能用普通的方法来写呢,比如说递归?在我的教科书上可是用的是递归呀?不知道你注意没有,如果是100的阶乘的话,其结果肯定是非常大的,以我们现有语言的数据类型肯定是没法使用的,就拿C来说,long型能存的下100的阶乘吗?未必.所以我就使用数组来存储结果的每一位,然后输出每
2006-06-30 07:54:00
2543
转载 C/C++面试题大汇总
最近因为找工作,收集了很多C语言方面方面的面试题以及答案。现在新工作搞定了,决定把这些资料发出来,送给有需要的朋友,免得再象我一样到处搜寻,实在辛苦。发布之前先申明两点: 1 所有资料来自网络(主要是CSDN),本人只是收集和转发。 2 所有问题解答(尤其是代码)只是参考,不保证正确。先发基本问题,再发编程问题..........想成为嵌入式程序员应知道的0x10个基本问题
2006-05-05 10:25:00
35263
8
原创 FastReport报表制作方法
1.FastReport报表设计中,如果数据库表中有为空的记录存在,那报表中在相应的栏就会显示空记录。如果想在为空的记录中添加一个/,除了可以在程序中写一个添加斜线的函数外,还可以在报表设计器中相应的Memo中添加如下代码,例如: Memo1.lines.clear; if ( isNull([CDSDetail."AccepterDate"]) ) then memo1.lines
2006-04-04 15:05:00
3039
1
原创 C++文件处理
C++把文件视为无结构的字节流,所以记录等说法在C++文件中是不存在的。1.创建顺序访问文件#include #include #include using namespace std;int main(){ ofstream outClientFile( "clients.txt",ios::out ); if ( !outClientFile ) { cerr exit( 1
2006-03-14 01:08:00
4189
2
原创 C++中的异常处理
常见的异常处理有:new无法取得所需内存、数组下标超界、运算溢出、除数为0和无效函数参数。异常处理特别适合用于程序无法恢复但又需要提供有序清理,以使程序可以正常结束时。良好编程习惯:发生范围与处理范围不同的错误可以使用异常处理。发生范围与处理范围相同的错误,则应该用其他方法处理。良好编程习惯:使用异常处理时,尽量避免错误处理以外的其他用途的处理,这样可使程序更清晰。异常处理用于错误处理,不
2006-03-13 23:34:00
2018
原创 C++静态类型
static.cpp文件:#include #include "employ1.h"using namespace std;int main(){ cout Employee *e1Ptr = new Employee( "Suanu", "Mary" ); Employee *e2Ptr = new Employee( "Jack", "Rose" ); cout co
2006-03-12 13:36:00
2291
原创 C++模板
1.函数模板函数模板与模板函数的区别:函数模板和类模板如同具有各种形状的模板、模板函数和模板类则相当于按照模板描绘,其形状相同,只是颜色各异。软件工程知识:模板是C++软件可重用的重要功能之一。测试和调试提示:函数模板和宏一样,支持软件的重用。但与宏不同的是,函数模板还可以消除许多类型错误,因为C++提供了安全而全面的类型检查。常见编程错误:函数模板的每个形式类型参数前不放置关键字clas
2006-03-12 12:43:00
1443
原创 名车史
法拉利: 企业介绍 法拉利是世界上最闻名的赛车和运动跑车的生产厂家。它创建于1929年,创始人是世界赛车冠军,划时代的汽车设计大师恩佐·法拉利。菲亚特公司拥有该公司50%股权,但该公司却能独立于菲亚特公司运营。法拉利汽车大部分采用手工制造,因而产量很低。年产量只有4,000辆左右。公司总部在意大利的摩德纳。车标故事
2005-11-23 11:50:00
3465
1
原创 Delphi中的线程类三
临界区(CriticalSection)则是一项共享数据访问保护的技术。它其实也是相当于一个全局的布尔变量。但对它的操作有所不同,它只有两个操作:Enter和Leave,同样可以把它的两个状态当作True和False,分别表示现在是否处于临界区中。这两个操作也是原语,所以它可以用于在多线程应用中保护共享数据,防止访问冲突。用临界区保护共享数据的方法很简单:在每次要访问共享数据之前调用Enter
2005-11-15 16:32:00
1004
原创 Delphi中输入年、月、日及润年平年的判断
procedure TfrmMain.checkDateEX(edt: Tmaskedit);var iyear, imonth, iday: word;begin if edt.Text begin iyear := strToint(copy(edt.Text, 1, 4)); imonth := strToint(copy(edt.Text, 6, 2)); ida
2005-11-07 15:22:00
1815
原创 C++ 学习笔记 I/O流的常用控制符
I/O流的常用控制符:dec 置基数为10hex 置基数为16oct 置基数为8setfill(c) 设填充字符为Csetprecision(n) 设显示小数精度为
2005-11-05 18:09:00
1091
原创 C++ 学习笔记
描述一个函数所执行算法的过程称为函数定义C++中,一个变量必须在声明之后才能使用。C++中,一个函数必须在函数声明后才能使用(被调用)#include #include using namespace std;double max(double x,double y); //函数声明void main(){ double a,b,c; cout cin>>a>>b; c=ma
2005-11-05 18:04:00
1358
原创 如何在一个程序中打开另一个应用程序
Q: 如何打开一个应用程序?ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );或ShellExecute(this->m_hWnd,"open","notepad.exe","c://MyLog.log","",SW_SHOW );As you can see, I havent passed the full path
2005-11-03 09:42:00
1347
原创 列举网络资源
在窗体中添加二个Panel,二个SpeedButton,一个StatusBar1,一个ImageList1控件,如图:unit U_NET;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ComCtrls, Ext
2005-11-03 09:30:00
1258
原创 连接服务器设置
在窗体中添加二个Panel,三个Label,三个Edit,一个BitBtn,二个SpeedButton,一个StatusBar1控件,还添加一个ScoketConnection1控件(在DataSnap控件类中)如图:unit U_Connection;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Co
2005-11-03 09:23:00
1371
转载 C/C++中利用空指针(NULL),提高程序运行效率
//程序作者:管宁 //站点:www.cndev-lab.com #include iostream> #include string> using namespace std; void print_char(char* array[]);//函数原形声明 void main(void) { char* test[]={"abc","cde","fgh",NULL};//这里添加一个NULL,表
2005-10-27 16:33:00
907
原创 C++中的const限定修饰符
const修饰符可以把对象转变成常数对象,什么意思呢? 意思就是说利用const进行修饰的变量的值在程序的任意位置将不能再被修改,就如同常数一样使用! 使用方法是:const int a=1;//这里定义了一个int类型的const常数变量a; 但就于指针来说const仍然是起作用的,以下有两点要十分注意,因为下面的两个问题很容易混淆! 我们来看一个如下的例
2005-10-24 11:48:00
965
原创 C++下的引用类型
引用类型也称别名,它是个很有趣的东西。在c++ 下你可以把它看作是另外的一种指针,通过引用类型我们同样也可以间接的操作对象,引用类型主要是用在函数的形式参数上,通常我们使用它是把类对象传递给一个函数。 引用对象采用类型名加上&符号和名称的方式进行定义。例如:(int &test;),这里我们就定义了一个int类型的名为test 的引用,但是int &test;这样的方
2005-10-24 11:43:00
943
原创 C++中布尔类型
布尔类型对象可以被赋予文字值true或者false,所对应的关系就是真与假的概念。 我们通常使用的方法是利用他来判断条件的真与假,例如下面的代码:#include iostream> using namespace std; void main(void) { bool found = true; if (found) {
2005-10-24 11:37:00
2844
原创 C/C++中枚举类型(enum)
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!enum box{pencil,pen};//这
2005-10-24 11:32:00
1294
原创 C/C++中数组和指针类型的关系
一个整数类型数组如下进行定义: int a[]={1,2,3,4}; 如果简单写成: a;//数组的标识符名称 这将代表的是数组第一个元素的内存地址,a;就相当于&a[0],它的类型是数组元素类型的指针,在这个例子中它的类型就是int* 如果我们想访问第二个元素的地址我们可以写成如下的两种方式: &a[1]; a
2005-10-24 11:12:00
1172
原创 关于C++中的内联函数(inline)
在c++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数。 可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。 下
2005-10-24 10:58:00
1407
1
原创 C/C++中字符指针数组及指向指针的指针的含义
就指向指针的指针,很早以前在说指针的时候说过,但后来发现很多人还是比较难以理解,这一次我们再次仔细说一说指向指针的指针。 先看下面的代码,注意看代码中的注解:#include iostream> #include string> using namespace std; void print_char(char* array[],int len);//函数原形声明
2005-10-24 10:50:00
850
原创 C++中的函数重载
我们来举一个实际应用中的例子来说明问题:我们要进行两种不同数据类型的和操作为了实现它,在c语言中我们就要写两个不同名称的涵数来进行区分例如:int testa(int a,int b)和float testb(float a,floatb),这样字是没有问题,但是总有一点不好,这么两个具备极其相似操作函数我们却起两个不同的名字,这样子不是很好管理,所以c++为了方便程序员编写程序特别引入了函数重载
2005-10-24 10:46:00
822
原创 导出Excel类
procedure TClassForm.ClassToExcel;var ExcelObj, Excel, WorkBook, Sheet: OleVariant; OldCursor:TCursor; Row,Col: Integer;begin if not (adsClasses.Active and adsMaster.Active and adsTeachers.Act
2005-09-18 10:49:00
1062
tiff-3.8.2.tar.gz
2007-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人