- 博客(37)
- 资源 (42)
- 收藏
- 关注
原创 编写简单的网络版shell命令解释器
项目名称:网络版shell命令解释器主要目的:练习socket 编程实现功能:可利用windows 的telnet远程登录服务进到 linux 系统,运行自己编写的shell 命令解析器,进行一些简单的内部命令和外部命令的操作,并把操作的命令和运行的结果显示在windows 的telnet 终端上源代码在http://download.csdn.net/sour
2009-04-30 19:00:00 1324
原创 利用socket编写简单的web 服务器
项目名称:编写简单的web 服务器主要目的:练习socket 编程、socket并发服务器可行性分析:时间 :2天;涉及知识:socket 编程、进程或线程的应用、web 服务器的服务形式需求分析:1、客户端向服务器发送请求;2、服务器对请求进行应答;3、服务器对不规范的域名进行纠正,发送到客户端;4、服务器遍历目录,若没找到请求的文件或目录,
2009-04-30 18:26:00 2641
转载 Http状态代码指示
Http状态代码 指示: 2xx 成功 200 正常;请求已完成。 201 正常;紧接 POST 命令。 202 正常;已接受用于处理,但处理尚未完成。 203 正常;部分信息 — 返回的信息只是一部分。 204 正常;无响应 —已接收请求,但不存在要回送的信息。 3xx 重定向 301 已移动 —请
2009-04-30 17:43:00 937
原创 学会在linux下的socket 编程
学习socket 编程之前必须先要理解TCP/IP通信的过程 网络通信的实质:1、解决不同主机进程间的通信.2、首要解决网络间进程标识问题3、解决多重协议的识别问题 OSI 和TCP/IP 的联系 OSI
2009-04-27 20:26:00 1549
转载 Linux环境下的Socket编程
转自:http://www.chinalinuxpub.com/read.php?wid=180 什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socke
2009-04-27 17:25:00 710
原创 浅析 c++ 纯虚函数
一、定义. 纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加"=0"virtual void funtion1()=0二、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象
2009-04-26 15:37:00 8261 5
原创 Linux下Makefile的automake生成全攻略
作为Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了.在本文中,将介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序
2009-04-25 21:28:00 607
原创 Linux系统调用概述
Linux系统调用讲义 Linux下系统调用的实现 Linux中的系统调用 Linux中怎样编译和定制内核 Linux下系统调用的实现 Unix/Linux操作系统的体系结构及系统调用介绍 什么是操作系统和系统调用 操作系统是从硬件抽象出来的虚拟机,在该虚拟机上用户可以运行应用程序。它负责直接与硬件交互,向用户程序提供公共服务,并使它们同硬件特
2009-04-25 21:24:00 971
原创 linux系统调用列表
以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。 按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用
2009-04-25 21:22:00 649
转载 Linux系统调用
Linux系统调用 摘要:本期重点和大家讨论系统调用机制。其中涉及到了一些及系统调用的性能、上下文深层问题,同时也穿插着讲述了一些内核调试方法。并且最后试验部分我们利用系统调用与相关内核服务完成了一个搜集系统调用序列的特定任务,该试验具有较强的实用和教学价值。 什么是系统调用 顾名思意,系统调用说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特
2009-04-25 21:03:00 692
原创 linux下制作静态库和动态库的方法
我们都知道 *.a 代表静态库;*.so 代表动态库。那么这两个库到底怎么制作呢? 制作静态库的方法:把代码编译为目标文件形式:# gcc -c liberr.c -o liberr.o使用工具ar创建一个存档文件:# ar rcs liberr.a liberr.o编译程序时把程序和liberr.a链接起来:# g
2009-04-25 20:47:00 3408
原创 浮点数在内存中的存储形式
浮点数: 浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。一个浮点数由2部分组成:底数m 和指数e。 ±mantissa × 2exponent(注意,公式中的mantissa 和 exponent使用二进制表示) 底数部分 使用2进制数来表示此浮点数的实际值。 指数部分 占用8-bit的二进制数,可表示数值范围为0-25
2009-04-25 20:26:00 5662 2
原创 计算机存储体系结构
一、引子在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:big-edian和little-endian。本文简要描述这两种存储机制的来
2009-04-25 20:13:00 2461
原创 C语言编译全过程
编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)1. 编译预处理读取c源
2009-04-25 20:12:00 885
原创 MiniGUI-1.3.3在PC上开发环境的建立
step 1: 安装库文件#tar zxvf libminigui-1.3.3.tar.gz#cd libminigui-1.3.3#./configure //采用默认的Thread模式,移植到实验箱上时再用Lite模式。#make#make install step 2: 安装资源文件#tar zxvf minigui-res-1.3.3.tar.g
2009-04-25 11:20:00 916
原创 linux 学习第二周小结
本周学习概况● 系统调用● 标准I/O库● 进程控制● 进程间通信:管道、命名管道、消息队列● 信号的基本操作● 线程的基本操作 具体内容如下:● 系统调用基本命令#who作用: 显示登陆用户名,终端名,登陆时间#open作用 : 打开一个文件头文件 #include 原型 int open(char *name, in
2009-04-24 21:26:00 720
原创 linux 学习第一周小结
本周学习概况总结:●在windows 下安装虚拟机 ,运行linux 操作系统。linux下一些简单的基本操作命令的学习,入mv、cp、cd、ls等。了解linux各目录文件的作用。vi 文本编辑器的使用。gcc 编译器的使用。gdb 调试器的使用。GNU make的使用。嵌入式开发环境的搭建,包括
2009-04-24 21:23:00 1381
原创 atuomake 步骤详解
atuomake:多个文件:main.c 、 fun.c和fun.h 1、autoscan 生成configure.scan文件。2、对configure.scan文件进行编辑,并改名为configure.in:AC_PREREQ(2.57) //版本信息AC_INIT(main,1.0) //版本信息AM_INIT_AUTOMAKE(main,1.0) /
2009-04-24 21:16:00 1009
转载 linux 的线程控制
1.Linux“线程” 笔者曾经在《基于嵌入式操作系统VxWorks的多任务并发程序设计》(《软件报》2006年第5~12期)中详细叙述了进程和线程的区别,并曾经说明Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓
2009-04-24 21:08:00 977
原创 指针和引用的区别
(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用指针. 由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值. String & rs = string1; 由于没有所谓的 null reference 所以所以在使用前不需要进行测试其是否有值.,而使用指针则需要测试其的有效性
2009-04-24 20:42:00 607
转载 嵌入式C开发人员的最好的0x10道笔试题
约定: 1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了 2)数据类型 char 一个字节 1 byte int 两个字节 2 byte (16位系统,认为整型是2个字节) long int 四个字节 4 byte float 四个字节4 byet double 八个字节 8 byt
2009-04-24 20:40:00 1195
转载 想成为嵌入式程序员应知道的0x10个基本问题
预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年
2009-04-24 20:36:00 547
原创 fflush 的一些用法
1.为什么 fflush(stdin) 是错的首先请看以下程序:#include int main( void ){ int i; for (;;) { fputs("Please input an integer: ", stdout); scanf("%d", &i); printf("%d/n", i); } return
2009-04-24 09:04:00 1140
转载 内存对齐
转自:也谈内存对齐 - [技术前沿] 明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/1347304.html在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序
2009-04-24 08:58:00 482
原创 常见的内存错误及其对策
内存分配方式内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,
2009-04-24 08:52:00 667
原创 wget 使用指南
wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。wget可以跟踪HTML页面上
2009-04-24 08:50:00 428
原创 Termios 百科
Termios TERMIOS 解说: Linux中的控制台界面,要大量用到Termios库的内容。但是,总的来看,这些东西已经过时了,应该用更简单的方案来代替它了,尽管它是POSIX标准的一部分。 termios的实现中,有大量的参数设置,还有伪终端的说法。原因就在于当初UNIX发明时,(上世纪七十~八十年代),在美国,西欧大学里面用的都是大型机加客户终端,学生们用的是串口方式与大型机进
2009-04-24 08:39:00 1053
原创 两天学习Qt 编程
学习笔记: 动态库 *.so静态库 *.a 标准的头文件在 /usr/include 下,系统编译时默认自动到这搜索。用户可通过 在命令中加 –I 库路径> 到额外指定的头文件搜索自己包含的头文件。 系统默认的链接库搜索路径在 /usr/lib , /lib –l 指定要链接的具体库名 -L 到额外库搜索的路径例:g++ hello.cpp –o
2009-04-23 21:50:00 1239 1
转载 C函数调用机制
3.4 C与汇编程序的相互调用为了提高代码执行效率,内核源代码中有的地方直接使用了汇编语言编制。这就会涉及在两种语言编制的程序之间的相互调用问题。本节首先说明C语言函数的调用机制,然后举例说明两者函数之间的调用方法。3.4.1 C函数调用机制在Linux内核程序boot/head.s执行完基本初始化操作之后,就会跳转去执行init/main.c程序。那么head.s程序是如何
2009-04-23 19:34:00 2958 2
原创 浅析linux 下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
2009-04-23 19:29:00 1310
原创 Qt 黑白棋分别在linux 字符界面和arm机下运行
API常用版本:QtopiaCore --X86 、Qt-X11、 Qt-windowslinux文字界面下用QtopiaCore—X86linux图形界面下Qt-X11windows下用Qt-windows后两者直接安装就能用了,没什么可说的 现在试试QtopiaCore--X86(可缺省)在linux 字符界面下运行Qt程序 编译# ./configure -em
2009-04-23 19:09:00 2804
原创 编写简单的shell命令解析器
编写简单的shell命令解析器环境:RedHat 9.0 内核 2.4.20vi 文书编辑器 6.1.320gcc 3.2.2-5 实现步骤: 第0步:写一个最简单的shell命令解释器,本程序取自APUE例1-5,命令不能带参数。 需要完成的
2009-04-22 21:13:00 8760 6
原创 用Qt 编写黑白棋程序
用Qt 编写黑白棋程序 前言:这是继三天学习c++后,学习了两天Qt 做的项目。 软件设计开发流程:瀑布模型:可行性分析时间:共8天(其中前两天学习Qt3.1 与Qt4.3.5,中间编程,最后的两天用来移植到arm
2009-04-22 20:17:00 8135 2
原创 三天学会C++
●派生类的声明一般格式:class 派生类名:派生方式 基类名{//派生类新增的数据成员和成员函数};如:class employee:public person{ char department[20]; float salary;public://…};●派生方式公有派生class
2009-04-22 19:57:00 1185
原创 三天学会C++
三天学会c++ 之二结构与类 结构与类的主要区别是:默认访问级别不同,结构默认是public,类默认是private。C++中的结构: 可以看作是用struct关健字创建的类C++中,结构的成员(数据和函数)通常分两类:私有成员:private,它只能被
2009-04-22 18:37:00 1393
原创 三天学会C++
三天学会C++ 之一 ●对象与类的概念 对象是现实世界中的一个实体,其特征是:1、每一个对象必须有一个名字以区别于其它对象;2、用属性(或叫状态)来描述它的某些特征;3、有一组操作,每一个操作决定对象的一种行为。类的精确定义:具有共性的实体的抽象,类是创建对象
2009-04-22 17:34:00 1540
MiniGUI-1.3 安装包
2009-04-25
Windows 编程模型
2009-04-23
构建嵌入式LINUX系统
2009-05-17
cygwin part 3
2009-05-12
cygwin part2
2009-05-12
cygwin part1
2009-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人