Ⅰ 編程零基礎想學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