windowslinux編程
windows下編程核心就是要使用Windows的機制進行編程。而且有MS出的API可以使用。ASCII C的語法,不全有效。
Linux下編程,其實和Unix下編程差別不大。基本都是ASCII C編程。另外,操作系統的程序運行機理也不一樣。這個是關鍵。
㈡ 編程初學者用linux 電腦還是windows 電腦好
其實,對於編程初學者來說,在學習之前選擇操作系統根據自身情況決定就可以了,哪個系統更加熟悉就選擇哪個系統,畢竟學習編程前期都是以學習語法知識為重要,不涉及應用場景,系統的選擇是無所謂的,但是以後深入學習之後,會根據不同的方向來選擇操作系統。
比如web開發可以在Windows系統下進行,也可以在Linux系統下進行;對於大型互聯網公司最好選擇Linux系統,中小型公司可以選擇Windows系統,當然也需要根據技術人員水平考慮。
對於大數據方向的話,就應該選擇Linux操作系統,因為大數據平台部分都是基於Linux系統的。
㈢ Linux下編程和在Windows下編程有什麼區別聽別人說開源什麼的,可是軟體是開源的就是開源閉
個人見解:
linux是開源的,windows系統閉源。
linux下開源軟體比較多,windows閉源比較多。編程工具也是,linux下大部分編程工具是開源的。
3.從編程代碼來講,linux和windows的區別應該不在於開閉源。而是編譯器不一樣,裡面的庫函數和類什麼的也不一樣,系統api不一樣。
4.編寫的程序用圖不太一樣,windows是桌面應用比較多,linux極少桌面編程。
5.還有就是由於linux系統是開源的,出現一些系統方面問題,你可以直接查看一下系統內核源碼。使用的一些模塊之類也一般是開源的,出現問題,也可以查源碼。
6.其實我沒看清楚,你是問:在windows系統寫代碼和linux的不同?還是問寫一個windows的軟體和linux軟體的不同?
PS:本人不是程序員。答案是抄來的。
㈣ linux下編程和windows下的編程有什麼區別
Linux編程c語言用的比較多一些,C++語言也常用,Linux編程調用的介面叫做「系統調用」,C標准庫、第三方開源C/C++庫也是常用的,Linux編程會用到許多代碼庫,代碼庫選擇上比較靈活;但是Windows編程C語言就用的少了,用C語言調用Windows API編程叫做Win32編程,微軟將Windows API作了C++封裝,封裝成了C++庫叫MFC,因為MFC庫是和微軟編程工具VC++/VS進行捆綁的,加上MFC編程的便捷,所以Windows編程C語言用的比較少,而C++語言用的比較多,後來微軟退出.NET平台後,C#語言也成為了Windows編程的主流語言。
另外就是Linux編程,編寫命令行程序仍然占很大比例,而Windows命令行編程已經非常少了,Windows主要是圖形界面編程。還有就是Linux上腳本編程很普遍,而Windows上腳本編程的程序規模都比較小,鑒於腳本語言(除了shell腳本)是跨平台的,在Windows上也可以用,而且有些腳本編程屬於Web開發的范疇,這里就不討論了。
㈤ 請比較Linux與Windows在網路編程方面的特點
找了一段,大致涉及到了您的問題:
一、socket的模式
socket一般有兩種模式:同步和非同步(windows網路編程技術中也可叫鎖定和非鎖定,Linux網路編程叫阻塞和非阻塞)。
二、socket的類型
socket一般有三種類型,基於TCP的流式套接字,基於UDP的數據報套接字和原始套接字。
三、socket的IO模型
socket
的IO模型是編程中使用socket兩種模式的策略,它們適用的場合不同,在不同的操作系統上支持的模型也不同,例如windows從NT版本才開始支持
完成埠模型。Linux和Windows所支持的模型也有區別,當然也有相同的地方,可能叫法不一樣,但大致思路是一樣的,下面分別介紹windows
和Linux的IO模型
1、 Windows下的套接字IO模型:
A、 Select(選擇)模型
用於同步socket的狀態檢測模型,又叫(Linux)多路復用,可以同時檢測多個socket的狀態
B、 WSAAsyncSelect(非同步選擇)模型
用於非同步socket的非同步事件設置,它是基於Windows消息的模型,必須先打開一個窗口,然後把窗口和socket的消息綁定,這樣,在socket有消息通知時,操作系統便通知窗口,然後在窗口進行處理。
C、 WSAEventSelect(非同步事件)模型
用
於非同步socket的非同步事件,它是基於網路事件的模型,先使用CreateEvent創建一個事件,然後使用WSAEventSelect進行事件綁
定,然後可以使用WaitForMultipleObject(Event)進行事件監聽,可以同時監聽多個事件,不光是socket的,比如可以監聽使
用CreateWaitableTimer創建的Timer等。
D、 重疊IO模型
用
於非同步socket,在創建socket時需要在創建函數WSASocket中使用WSA_FLAG_OVERLAPPED標志,然後在投遞IO請求的時
候將一個Overlapped結構體指針賦給投遞函數,可以使用WSAWaitForMultipleObject來監聽事件,然後使用
WSAGetOverlappedResult來獲取IO的狀態,也可以在Overlapped結構體中使用完成常式來處理,即在投遞函數中把完成常式賦
給投遞函數。
E、 完成埠模型
它
是迄今為止最復雜的一種IO模型,當應用程序需要管理眾多的套接字並且希望隨著系統內安裝的CPU數目的增多,應用程序的性能也可以線性增加,就可以使用
這種模型,它的原理是每個CPU可以單獨負責一個線程的執行,避免線程的頻繁切換。使用這種模型往往可以達到最佳的系統性能。
首
先需要使用CreateIOCompletePort來創建完成埠,然後將IO句柄和此埠綁定,綁定也是使用此函數,當然也可以一次完成。接著是創建
工作者線程,工作者線程會使用GetQueuedCompletionStatus進入完成埠維護的線程池,當有完成事件時,會激活一個線程。
2、 Linux下的IO模型
A、阻塞IO
B、非阻塞IO
C、IO多路復用(選擇)
D、信號驅動
用於非同步socket,首先設定信號處理函數,然後使用fcntl函數設定socket的擁有者,像windows下使用WSAAsncSelect設定socket的窗口一樣。使用這種模型,當內核操作可以被操作的時候通知我們的應用程序
E、非同步IO
當內核在所有操作完成後才會通知應用程序
四、socket的一些使用上的優化
A、緩沖區的優化,可以考慮讓應用程序使用比較小的緩沖區,但同時使用多個WSARecv
B、使用socket選項SO_SNDBUF和SO_RCVBUF設置socket緩沖區大小,如果設為0,操作體系統會使用應用程序的緩沖區,這樣避免了從系統緩沖區向用戶區復制的開銷
五、注意這些IO模型有些不光是針對socket的,其他的IO操作也可以使用,最常用使用的是WriteFile,ReadFile等函數。
其它查考網址:
http://blog.163.com/tianle_han/blog/static/6617826200821522743948/
http://blog.csdn.net/yibulianhua/article/details/5374317
㈥ linux下的c語言編程和windows下的c語言編程有什麼區別
語言本身差別不大。主要主要是和系統交互的時候不同。一個是Linux的POSIX介面,一個是Windows的Win32 API。
Linux下的介面因為源自UNIX,有很多API明顯是C庫的風格,風格比較老舊。但是Win32 API風格更現代、更高級一些。比如Linux下fork/exec、Windows下CreateProcess。而且Windows的API提供很多圖形界面的相關功能,比如支持窗口間操作。Linux下需要單獨的GUI庫比如GTK+等等。