Ⅰ 编程零基础想学C语言,谭浩强老师的《C程序设计》很好,但版本太多,我该学哪个版本
谭老的《C程序设计》就很适合初学者,曾在上世纪九十年代横行各大高校。至于一、二、三版,那是对前一版本的修订版,每次修订都对上一版本作一些增删处理。第一版以C87标准为基础,第二版以C99标准为基础,第三版增加了一章C++的内容,但大部分内容没有改变,如例题,习题等。你当然是选择第三版了,当然选第二版也可以。下面是我收藏的电子书,供你参考。
pdf格式:
http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=4363060
chm格式:
http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=4357434
习题答案:(PDF版)
http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2413734
pdf版电子书,需要安装 foxit reader阅读。
Ⅱ CGI是什么
cgi全称是“公共网关界面”(common
gateway
interface),http服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
功能:
绝大多数的cgi程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。cgi程序使网页具有交互功能。
Ⅲ javaScript与CGI的关系
CGI 这么古老的东西 现在已经被jsp,php等这一类技术占领了应用领地了,学习javascript和CGI没有任何必然的联系。只要你有编程基础就可以。不过最好有 html 基础因为javascript通常应用在浏览器上
Ⅳ 什么叫CGI编程
这种编程不好学
CGI:Common Gateway Interface
CGI代表Common Gateway Interface(通用网关界面),它使在网络服务器下运行外部分应用程序(或网关)成为可能。CGI-BIN 目录是存放CGI脚本的地方。这些脚本使WWW服务器和浏览器能运行外部程序,而无需启动另一个原因程序。
它是运行在Web服务器上的一个程序,并由来自于浏览者的输人触发。CGI是在HTTP服务器下运行外部程序(或网关)的一个接口,它能让网络用户访问远程系统上的使用类型程序,就好像他们在实际使用那些远程计算机一样。
CGI能够让浏览者与服务器进行交互,如果你曾经遇到过在网络上填表或者进行搜索,就很有可能就是用的CGI。
尽管CGI易于使用,但是当大批人同时使用一个CGI应用程序是会反应较慢,网络服务器 速度也会受到很大 影响。CGI应用程序的优点是可以独立运行。
CGI应用程序可以由大多数的编程语言编写,如Perl(Practical Extraction and Report Language)、C\C++、Java 和Visual Basic等。不过对于那些没有太多编程经验的网页制作人来说,实在是一个不小的难题。
CGI应用程序的工作原理是这样的:
1.浏览器通过HTML表单或超链接请求指上一个CGI应用程序的URL。
2.服务器收发到请求。
3.服务器执行指定所CGI应用程序。
4.CGI应用程序执行所需要的操作,通常是基于浏览者输人的内容。
5.CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。
6.网络服务器把结果返回到浏览器中。
有关CGI应用程序要注意的是:
CGI应用程序运行在浏览器可以请求的服务器系统上,执行时需要使用服务器CPU时间和内存。如果有成千上万的这种程序会同时运行,那会对服务器系统提出极高的要求。你要慎重考虑这个问题,以防止服务器系统崩溃。
不完善的CGI应用程序可能成为别人非法进人服务器系统的通道,有可能导致重要的资料被删除或外泄。
CGI应用程序主要的用途有以下几种:
根据浏览者填写的HTML表单发送定制的答复。
创建可单击的图像缩小图。
创建一个浏览者可以搜索内容的数据库。
提供服务器与数据库的接口,并把结果转换成HTML文档。
制作动态HTML文挡。
如果一个CGI脚本可以在每台计算机上做同样的事情;编写脚本就会变的很容易。不幸的是,CGI脚本依赖于服务器的操作系统,因此,对于非UNIX服务器来说,Prl(UNIX下编写脚本的一个常用工具)脚本毫无用处。所以,你必须定制安装你的CGI脚本。
大多数服务器都提供CGI-BIN目录,但是这还不够。因为你应该拥有自己的CGI-BIN。这样,你就能运行自己的脚本(而不是让自己的系统去适应已存在于系统上的脚本)。因此,你的提供商应安装CGI-BIN,且能够帮助你编写脚本
Ⅳ 请高人帮助~
数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。
随着计算机技术与网络通信技术的发展,数据库技术已成为信息社会中对大量数据进行组织与管理的重要技术手段及软件技术,是网络信息化管理系统的基础。本章主要介绍数据库技术的应用与发展、关系模型的基本概念、关系数据库的设计理论及数据库设计方法等内容,是学习和掌握现代数据库技术的基础。
1.1 数据库技术的发展与应用
从20世纪60年代末期开始到现在,数据库技术已经发展了30多年。在这30多年的历程中,人们在数据库技术的理论研究和系统开发上都取得了辉煌的成就,而且已经开始对新一代数据库系统的深入研究。数据库系统已经成为现代计算机系统的重要组成部分。
1.1.1 数据库技术与信息技术
信息技术(Information Technology,IT)是当今使用频率最高的名词之一,它随着计算机技术在工业、农业以及日常生活中的广泛应用,已经被越来越多的个人和企业作为自己赶超世界潮流的标志之一。而数据库技术则是信息技术中一个重要的支撑。没有数据库技术,人们在浩瀚的信息世界中将显得手足无措。
数据库技术是计算机科学技术的一个重要分支。从20世纪50年代中期开始,计算机应用从科学研究部门扩展到企业管理及政府行政部门,人们对数据处理的要求也越来越高。1968年,世界上诞生了第一个商品化的信息管理系统IMS(Information Management System),从此,数据库技术得到了迅猛发展。在互联网日益被人们接受的今天,Internet又使数据库技术、知识、技能的重要性得到了充分的放大。现在数据库已经成为信息管理、办公自动化、计算机辅助设计等应用的主要软件工具之一,帮助人们处理各种各样的信息数据。
1.1.2 数据库技术的应用及特点
数据库最初是在大公司或大机构中用作大规模事务处理的基础。后来随着个人计算机的普及,数据库技术被移植到PC机(Personal Computer,个人计算机)上,供单用户个人数据库应用。接着,由于PC机在工作组内连成网,数据库技术就移植到工作组级。现在,数据库正在Internet和内联网中广泛使用。
20世纪60年代中期,数据库技术是用来解决文件处理系统问题的。当时的数据库处理技术还很脆弱,常常发生应用不能提交的情况。20世纪70年代关系模型的诞生为数据库专家提供了构造和处理数据库的标准方法,推动了关系数据库的发展和应用。1979年,Ashton-Tate公司引入了微机产品dBase Ⅱ,并称之为关系数据库管理系统,从此数据库技术移植到了个人计算机上。20世纪80年代中期到后期,终端用户开始使用局域网技术将独立的计算机连接成网络,终端之间共享数据库,形成了一种新型的多用户数据处理,称为客户机/服务器数据库结构。现在,数据库技术正在被用来同Internet技术相结合,以便在机构内联网、部门局域网甚至WWW上发布数据库数据。
1.1.3 数据库技术发展历史
数据模型是数据库技术的核心和基础,因此,对数据库系统发展阶段的划分应该以数据模型的发展演变作为主要依据和标志。按照数据模型的发展演变过程,数据库技术从开始到现在短短的30年中,主要经历了三个发展阶段:第一代是网状和层次数据库系统,第二代是关系数据库系统,第三代是以面向对象数据模型为主要特征的数据库系统。数据库技术与网络通信技术、人工智能技术、面向对象程序设计技术、并行计算技术等相互渗透、有机结合,成为当代数据库技术发展的重要特征。
1. 第一代数据库系统
第一代数据库系统是20世纪70年代研制的层次和网状数据库系统。层次数据库系统的典型代表是1969年IBM公司研制出的层次模型的数据库管理系统IMS。20世纪60年代末70年代初,美国数据库系统语言协会CODASYL(Conference on Data System Language)下属的数据库任务组DBTG(Data Base Task Group)提出了若干报告,被称为DBTG报告。DBTG报告确定并建立了网状数据库系统的许多概念、方法和技术,是网状数据库的典型代表。在DBTG思想和方法的指引下数据库系统的实现技术不断成熟,开发了许多商品化的数据库系统,它们都是基于层次模型和网状模型的。
可以说,层次数据库是数据库系统的先驱,而网状数据库则是数据库概念、方法、技术的奠基者。
2. 第二代数据库系统
第二代数据库系统是关系数据库系统。1970年IBM公司的San Jose研究试验室的研究员Edgar F. Codd发表了题为《大型共享数据库数据的关系模型》的论文,提出了关系数据模型,开创了关系数据库方法和关系数据库理论,为关系数据库技术奠定了理论基础。Edgar F. Codd于1981年被授予ACM图灵奖,以表彰他在关系数据库研究方面的杰出贡献。
20世纪70年代是关系数据库理论研究和原型开发的时代,其中以IBM公司的San Jose研究试验室开发的System R和Berkeley大学研制的Ingres为典型代表。大量的理论成果和实践经验终于使关系数据库从实验室走向了社会,因此,人们把20世纪70年代称为数据库时代。20世纪80年代几乎所有新开发的系统均是关系型的,其中涌现出了许多性能优良的商品化关系数据库管理系统,如DB2、Ingres、Oracle、Informix、Sybase等。这些商用数据库系统的应用使数据库技术日益广泛地应用到企业管理、情报检索、辅助决策等方面,成为实现和优化信息系统的基本技术。
3. 第三代数据库系统
从20世纪80年代以来,数据库技术在商业上的巨大成功刺激了其他领域对数据库技术需求的迅速增长。这些新的领域为数据库应用开辟了新的天地,并在应用中提出了一些新的数据管理的需求,推动了数据库技术的研究与发展。
1990年高级DBMS功能委员会发表了《第三代数据库系统宣言》,提出了第三代数据库管理系统应具有的三个基本特征:
l 应支持数据管理、对象管理和知识管理。
l 必须保持或继承第二代数据库系统的技术。
l 必须对其他系统开放。
面向对象数据模型是第三代数据库系统的主要特征之一;数据库技术与多学科技术的有机结合也是第三代数据库技术的一个重要特征。分布式数据库、并行数据库、工程数据库、演绎数据库、知识库、多媒体库、模糊数据库等都是这方面的实例。
1.1.4 数据库系统访问技术
目前访问数据库服务器的主流标准接口主要有ODBC、OLE DB和ADO。下面分别对这三种接口进行概要介绍。
1. 开放数据库连接(ODBC)
开放数据库连接(Open Database Connectivity,ODBC)是由Microsoft公司定义的一种数据库访问标准。使用ODBC应用程序不仅可以访问存储在本地计算机的桌面型数据库中的数据,而且可以访问异构平台上的数据库,例如可以访问SQL Server、Oracle、Informix或DB2构建的数据库等。
ODBC是一种重要的访问数据库的应用程序编程接口(Application Programming Interface,API),基于标准的SQL语句,它的核心就是SQL语句,因此,为了通过ODBC访问数据库服务器,数据库服务器必须支持SQL语句。
ODBC通过一组标准的函数(ODBC API)调用来实现数据库的访问,但是程序员不必理解这些ODBC,API就可以轻松开发基于ODBC的客户机/服务器应用程序。这是因为在很多流行的程序开发语言中,如Visual Basic、PowerBuilder、Visual C++等,都提供了封装ODBC各种标准函数的代码层,开发人员可以直接使用这些标准函数。
ODBC获得了巨大成功并大大简化了一些数据库开发工作。但是它也存在严重的不足,因此Microsoft公司又开发了OLE DB。
2. OLE DB
OLE DB是Microsoft公司提供的关于数据库系统级程序的接口(System-Level Programming Interface),是Microsoft公司数据库访问的基础。OLE DB实际上是Microsoft公司OLE对象标准的一个实现。OLE DB对象本身是COM(组件对象模型)对象并支持这种对象的所有必需的接口。
一般说来,OLE DB提供了两种访问数据库的方法:一种是通过ODBC驱动器访问支持SQL语言的数据库服务器;另一种是直接通过原始的OLE DB提供程序。因为ODBC只适用于支持SQL语言的数据库,因此ODBC的使用范围过于狭窄,目前Microsoft公司正在逐步用OLE DB来取代ODBC。
因为OLE DB是一个面向对象的接口,特别适合于面向对象语言。然而,许多数据库应用开发者使用VBScript和JScript等脚本语言开发程序,所以Microsoft公司在OLE DB对象的基础上定义了ADO。
3. 动态数据对象(ADO)
动态数据对象(Active Data Objects,ADO)是一种简单的对象模型,可以被开发者用来处理任何OLE DB数据,可以由脚本语言或高级语言调用。ADO对数据库提供了应用程序水平级的接口(Application-Level Programming Interface),几乎使用任何语言的程序员都能够通过使用ADO来使用OLE DB的功能。Microsoft公司声称,ADO将替换其他的数据访问方式,所以ADO对于任何使用Microsoft公司产品的数据库应用是至关重要的。
1.1.5 网络数据库系统编程技术
在当今网络盛行的年代,数据库与Web技术的结合正在深刻改变着网络应用。有了数据库的支持,扩展网页功能、设计交互式页面、构造功能强大的后台管理系统、更新网站和维护网站都将变得轻而易举。随着网络应用的深入,Web数据库技术将日益显示出其重要地位。在这里简单介绍一下Web数据库开发的相关技术。
1. 通用网关接口(CGI)编程
通用网关接口(Common Gateway Interface,CGI)是一种通信标准,它的任务是接受客户端的请求,经过辨认和处理,生成HTML文档并重新传回到客户端。这种交流过程的编程就叫做CGI编程。CGI可以运行在多种平台上,具有强大的功能,可以使用多种语言编程,如Visual Basic、Visual C++、Tcl、Perl、AppletScript等,比较常见的是用Perl语言编写的CGI程序。但是CGI也有其致命的弱点,即速度慢和安全性差等。
2. 动态服务器页面(ASP)
动态服务器页面(Active Server Pages,ASP)是Microsoft公司推出的一种用以取代CGI的技术,是一种真正简便易学、功能强大的服务器编程技术。ASP实际上是Microsoft公司开发的一套服务器端脚本运行环境,通过ASP可以建立动态的、交互的、高效的Web服务器应用程序。用ASP编写的程序都在服务器端执行,程序执行完毕后,再将执行的结果返回给客户端浏览器,这样不仅减轻了客户端浏览器的负担,大大提高了交互速度,而且避免了ASP程序源代码的外泄,提高了程序的安全性。
3. Java 服务器页面(JSP)
Java服务器页面(Java Server Pages,JSP)是Sun公司发布的Web应用程序开发技术,一经推出,就受到了人们的广泛关注。JSP技术为创建高度动态的Web应用程序提供了一个独特的开发环境,它能够适用于市场上大多数的服务器产品。
JSP使用Java语言编写服务器端程序,当客户端向服务器发出请求时,JSP源程序被编译成Servlet并由Java虚拟机执行。这种编译操作仅在对JSP页面的第一次请求时发生。因此,JSP程序能够提供更快的交互速度,其安全性和跨平台性也很优秀。
Ⅵ 《python核心编程(第二版)》pdf下载在线阅读,求百度网盘云资源
《Python核心编程(第二版)》([美]Wesley J. Chun(陈仲才))电子书网盘下载免费在线阅读
资源链接:
链接:
书名:Python核心编程(第二版)
作者:[美]Wesley J. Chun(陈仲才)
译者:宋吉广
豆瓣评分:7.7
出版社:人民邮电出版社
出版年份:2008-06
页数:654
内容简介:本书是Python开发者的完全指南——针对 Python 2.5全面升级
·学习专业的Python风格、最佳实践和好的编程习惯;
·加强对Python对象、内存模型和Python面向对象特性的深入理解;
·构建更有效的Web、CGI、互联网、网络和其他客户端/服务器架构应用程序及软件;
·学习如何使用Python中的Tkinter和其他工具来开发自己的GUI应用程序及软件;
·通过用C等语言编写扩展来提升Python应用程序的性能,或者通过使用多线程增强I/0相关的应用程序的能力;
·学习Python中有关数据库的API,以及如何在Python中使用各种不同的数据库系统,包括MySQL、Postgres和 SQLite。
Ⅶ 用c++编程写cgi遇到的问题
1. system函数:
原型:
#include
int system (const char *string);
功能:
The system function runs the command passed to it as
string and waits for it to complete. The command is
executed as if the command $ sh −c string has been given
to a shell.
【也就是说,system要使用一个shell来启动指定的程序】
例:
#include
#include
int main()
{
printf("Running ps with system\n");
system("ps −ax");
printf("Done.\n");
exit(0);
}
2. exec函数族包括6个函数:
#include
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg, const char *envp[]);
int execv(const char *path, const char *argv[]);
int execve(const char *path, const char *argv[], const char *envp[];
int execvp(const char *file, const char *argv[]);
参数说明:
execl的第一个参数是包括路径的可执行文件,后面是列表参数,列表的第一个为命令path,接 着为参数列表,最后必须以NULL结束。
execlp的第一个参数可以使用相对路径或者绝对路径。
execle,最后包括指向一个自定义环境变量列表的指针,此列表必须以NULL结束。
execv,v表示path后面接收的是一个向量,即指向一个参数列表的指针,注意这个列表的最后 一项必须为NULL。
execve,path后面接收一个参数列表向量,并可以指定一个环境变量列表向量。
execvp,第一个参数可以使用相对路径或者绝对路径,v表示后面接收一个参数列表向量。
exec被调用时会替换调用它的进程的代码段和数据段(但是文件描述符不变),直接返回到调用它的进程的父进程,如果出错,返回-1并设置errno。
Ⅷ 求教:CGI编程 程序开头一定要加上 C:\Python27\python.exe么
如果是python2.X的话,可以使用modpython进行python的web编程。如果升级到python3.X的话,则可以使用wsgi。因为modpython不支持python3在这里介绍使用cgi进行python的web编程,然后通过简单的例子进行示范。使用php编程的童鞋都知道,apache在运行php程序之前需要对apache进行配置。同样,使用python也需要配置。python的apache配置基本上四个步骤:1、打开http.conf,找到#,把前面的#去掉。如果没有找到这句话,则自行添加。2、找到AddHandlercgi-script,去掉前面的#,在后面加上.py3、找到OptionsIndexesFollowSymLinks,在其后加上ExecCGI,去掉Indexes4、保存,重启apache。之后就可以进行python的编程了,编辑p.py:[python]viewplainprint?#!D:\\software\python\python.exe#encoding:gb2312#importcgi,cgitbprint("Content-type:text/html\r\n\r\n")print("")print("Hello,python")a="100";print("hello,iam")print(a)print("")print("")然后在浏览器中输入:127.0.0.1/p.py,就可以看到输出了:hello,iam100
Ⅸ python cgi编程重要吗
如果是python2.X的话,可以使用modpython进行python的web编程。如果升级到python3.X的话,则可以使用wsgi。因为modpython不支持python3
在这里介绍使用cgi进行python的web编程,然后通过简单的例子进行示范。
使用php编程的童鞋都知道,apache在运行php程序之前需要对apache进行配置。同样,使用python也需要配置。
python的apache配置基本上四个步骤:
1、打开http.conf,找到 #ScriptInterpreterSource Registry,把前面的#去掉。如果没有找到这句话,则自行添加。
2、找到AddHandler
cgi-script,去掉前面的#,在后面加上.py
3、找到Options Indexes FollowSymLinks,在其后加上ExecCGI, 去掉 Indexes
4、保存,重启apache。
之后就可以进行python的编程了,编辑 p.py:
[python] view plain print?
#!D:\\software\python\python.exe
#encoding:gb2312
#import cgi, cgitb
print("Content-type:text/html\r\n\r\n")
print("<html>")
print("<head><title>Hello,python</title></head>")
a="100";
print("<body><h1>hello, i am " )
print(a)
print("</h1></body>")
print("</html>")
然后在浏览器中输入: 127.0.0.1/p.py,就可以看到输出了:
hello, i am 100