A. linux下的c/c++開發
我就是做LINUX下的C開發的。
准確的說,LINUX下C才是主要的開發語言,但是寫應用程序還是要用面向對象的,尤其是圖形界面的,不如QT和X和GTK等等。下面說的必須要求你C語言學的很好而且會使用LINUX的情況下。LINUX常用命令要熟悉。
要學LINUX下的C編程,先看一兩本LINUX下C的書比較好,這個你自己選擇,但是經典的書還是好一些,比如《LINUX程序設計》、《UNIX環境高級編程》,看這些的時候把書上的例子選擇一些自己編譯一下,哪怕是照著敲進去,事半功倍。
看完一本這樣的書,你對LINUX系統編程的知識就足夠了,這時候你可以開始閱讀一些LINUX下的源代碼來鍛煉和提升能力了,LINUX下有很多開源的軟體,你可以搜一下,應用程序也很多,但是最好的源代碼還是LINUX內核。
推薦一本簡單的內核書《linux內核完全剖析0.12》,這個講的是0.12內核,代碼量只有1萬多行的內核,現在的2.6估計一千萬,一輩子看不完。這個書講了很多X86體系結構的知識,這時理解內核必備的,匯編你要能看懂。
能看懂內核代碼了,就說明你至少不是初學者了,現在肯定能開發項目了,有了經驗後,恭喜你,你就成為一名LINUX程序員了。
再由這些基礎後,你就可以選擇一些具體的開放方向了,比如底層一點,驅動,協議等、或者嵌入式應用等、或者是QT等。不過這就是後話了,呵呵
我自己的一些體會,希望能對你有用。
B. Linux 下進行 C/C++ 開發一般使用什麼開發環境
Linux的C/C++開發環境一般都是文本編輯器(Vim、emacs等)+編譯器(GCC、g++、make、cmake)+調試器(gdb),用集成開發環境IDE(比如codeblocks、eclipse-cdt)的比Windows平台要少。我才開始用的是eclipse-cdt,也是覺得IDE不好用,而且寫一個helloworld都要產生一大堆文件(也不知道這些文件什麼作用),用git來維護管理代碼也非常不方便,而且如果編寫的是命令行程序會反復切換到終端,還不如直接在終端編譯,總之太不靈活了。不過如果gdb用得不習慣的,可以選擇用gdb的圖形前端ddd和Kdbg這兩個軟體。也有覺得命令行編輯器不習慣的,他們會選擇圖形界面的gVim+各種插件,或者圖形功能更好的代碼編輯器如gedit、Sublime Text、Atom、VScode等等。
C. 從事C/C++開發或者java開發都必須學習Linux嗎 Linux對開發有什麼幫助主要總來做
從事C/C++開發或者java開發不是必須都要學習Linux, 想要學習這方面的知識推薦千鋒教育,優秀的教師團隊提供教學,優秀的教學資源供每位學生學習,多年來培養眾多優秀人才,可靠放心。
一般C/C++開發或者java開發都是伺服器軟體,一般伺服器上linux環境居多.所以有的要求linux。總之就是他們用,所以想招一個會用的人。明顯的有什麼幫助還真沒覺得,但是用linux開發感覺挺方便的,工具也多。用慣了linux之後,就再也不想切回windows了。
想要了解更多有關java開發的相關信息,推薦咨詢千鋒教育。千鋒教育成立教研學科中心,推出貼近企業需求的線下技能培訓課程。課程包含HTML5大前端培訓、JavaEE+分布式開發培訓、Python人工智慧+數據分析培訓、全鏈路UI/UE設計培訓、雲計算培訓、全棧軟體測試培訓、大數據+人工智慧培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、網路安全培訓、區塊鏈培訓、影視剪輯包裝培訓、游戲原畫培訓、全媒體運營培訓。採用全程面授高品質、高體驗培養模式,非常值得選擇。
D. linux c開發: 在程序退出時進行處理
有時候,希望程序退出時能進行一些處理,比如保存狀態,釋放一些資源。c語言開發的linux程序,有可能正常退出(exit),有可能異常crash,而異常crash可能是響應了某信號的默認處理。這里總結一下這些情況,如何獲取一個統一的退出處理的點,說白了就是寫一個回調函數,讓他在程序正常或異常退出時調用。
這個例子裡面其實是將異常退出處理和正常退出處理結合起來了。對於SIGTERM(即kill進程)和SIGINT(即ctrl-c結束前台進程),我們當做是正常退出,在其信號處理函數裡面,直接調用了exit(0),而exit(0)又會被server_on_exit捕獲到。對於異常退出也是類似,只是調用了exit(-1)表示是異常的。同時異常退出我們會列印出當前的進程堆棧信息,server_backtrace的實現下一篇再說。另外注意的是SIGKILL信號是無法捕獲的。而調用abort導致的退出,也是通過SIGABRT信號捕獲到進行處理了。其他幾種異常退出的信號也是比較常見,一並捕獲到進行處理。這樣對於異常退出,我們即可統一的log堆棧信息,又可直接繼續正常退出時的處理流程了。
E. 在Linux下如何開發C程序
在Linux開發環境下,GCC是進行C程序開發不可缺少的編譯工具。GCC是GNU C Compile的縮寫,是GNU/Linux系統下的標准C編譯器。雖然GCC沒有集成的開發環境,但堪稱是目前效率很高的C/C++編譯器。《linux就該這么學》非常值得您一看。Linux平台下C程序開發步驟如下:
1.利用編輯器把程序的源代碼編寫到一個文本文件中。
比如編輯test.c程序內容如下:
/*這是一個測試程序*/
#include<stdio.h>
int main(void)
{
printf("Hello Linux!");
}
2.用C編譯器GCC編譯連接,生成可執行文件。
$gcc test.c
編譯完成後,GCC會創建一個名為a.out的文件。如果想要指定輸出文件,可以使用選項-o,命令如下所示:
$gcc-o test1 test.c
這時可執行文件名就變為test1,而不是a.out。
3.用C調試器調試程序。
4.運行該可執行文件。 在此例中運行的文件是:
$./a.out 或者 test1
結果將得出:
Hello Linux!
除了編譯器外,Linux還提供了調試工具GDB和程序自動維護工具Make等支持C語言編程的輔助工具。如果想要了解GCC的所有使用說明,使用以下命令:
$man gcc
F. linux下的C語言開發(管道通信)
姓名:馮成 學號:19020100164 學院:丁香二號書院
轉自:https://feixiaoxing.blog.csdn.net/article/details/7229483
【嵌牛導讀】本文將介紹linux下的C語言開發中的管道通信
【嵌牛鼻子】linux C語言 管道通信
【嵌牛提問】linux下的C語言開發中的管道通信是什麼?
Linux系統本身為進程間通信提供了很多的方式,比如說管道、共享內存、socket通信等。管道的使用十分簡單,在創建了匿名管道之後,我們只需要從一個管道發送數據,再從另外一個管道接受數據即可。
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int pipe_default[2];
int main()
{
pid_t pid;
char buffer[32];
memset(buffer, 0, 32);
if(pipe(pipe_default) < 0)
{
printf("Failed to create pipe!\n");
return 0;
}
if(0 == (pid = fork()))
{
close(pipe_default[1]);
sleep(5);
if(read(pipe_default[0], buffer, 32) > 0)
{
printf("Receive data from server, %s!\n", buffer);
}
close(pipe_default[0]);
}
else
{
close(pipe_default[0]);
if(-1 != write(pipe_default[1], "hello", strlen("hello")))
{
printf("Send data to client, hello!\n");
}
close(pipe_default[1]);
waitpid(pid, NULL, 0);
}
return 1;
}
下面我們就可以開始編譯運行了,老規矩分成兩步驟進行:(1)輸入gcc pipe.c -o pipe;(2)然後輸入./pipe,過一會兒你就可以看到下面的列印了。
[test@localhost pipe]$ ./pipe
Send data to client, hello!
Receive data from server, hello!
G. 如何在linux下編寫大型c程序
Linux下面開發C程序的過程大致為:編輯源文件--調試--編寫makefile文件--編譯及安裝(發布的話打包源碼發布或者打包rpm、deb發布)。
(1)編輯源文件的方式有很多種,厲害的可以使用vim,配合插件,據說很牛,我只會基本操作,i,wq之類的。推薦學一下vim,學會了很厲害,學不會也最起碼保證打開文件,編輯文件,保存文件沒問題。有小改動的時候,我會使用vim。
或者使用windows下面的notepad,有大改動的時候我會配合smb使用notepad。
再或者在ubuntu下面安裝eclipse,進行文件編輯,對於熟悉eclipse是不錯的選擇。
(2)調試:
小型的程序,gdb就行
大點的程序,找IDE吧,比如eclipse
(3)對於makefile文件,小型的程序可以自己編寫,大點的使用autotool工具生成,至於autotool工具如何使用,請自行上網搜。
使用eclipse的話,配置好之後進行編譯。
(4)安裝問題:有makefile的話,linux安裝程序的經典步驟 configure,make,make install即可。
如果不是很大型的話,把自己的代碼放在/usr/local軟體名/下面,需要的庫放在系統庫路徑下,或者把運行路徑添加到環境變數中。也能運行。
(5)發布的時候
打包源碼發布,.tar.gz
打包成rpm、deb包,自行搜索教程。
我也在摸索中,分享一下經驗,僅供參考,如有出錯,還請見諒。
H. linux下c開發有哪些發展方向
linux下C主要是這幾個方向
操作系統內核
驅動程序
gnome等部分gui
嵌入式、手機底層開發
和windows不同,linux的應用層很少用C/C++關於Linux的學習,你可以看看《linux就該這么學》,系統的學習一下相關知識,地址是3w(dot)linuxprobe(dot)com,good luck.
I. 小弟問一下各位前輩,做linux下面的C開發一般用什麼IDE和調試工具
Linux系統C語言開發一般不用IDE,因為Linux系統C或者C++語言IDE並不能帶來方便,相反還有點繁瑣,主要是不夠靈活。Linux C編程一般都是在文本編輯器中寫代碼(具體用哪個文本編輯器完全是個人喜好,專業的文本編輯器往往要比IDE的代碼編輯功能要更好更強大),然後在命令行下編譯(編譯可以用gcc命令、g++命令,也可以編寫一個makefile然後用make命令。如果你學會了makefile的編寫,比IDE要方便多了,只輸入一句make然後按下回車不就和點擊編譯按鈕一樣么),調試是用gdb。為什麼說IDE不夠靈活呢,舉個例子,你編寫了一個程序需要調用一個共享庫,但是你不知道怎麼編譯(就是不知道該加什麼編譯參數),你網路一下後,就知道編譯的命令了,但是你不知道怎麼控制IDE的行為,它能正常編譯還好,如果不能正常編譯,你就會各種折騰,效率肯定不高。
如果你實在偏愛IDE,Linux上的IDE也不少(這里只列舉C/C++的IDE),有codeblocks、eclipse-cdt、codelites。調試工具也有圖形界面的,比較好用的有KDbg、Affinic Debugger GUI。
J. Linux系統下的C語言開發都需要學些什麼
一、工具的使用 1、學會使用vim/emacs,vim/emacs是linux下最常用的源碼編輯具,不光要學會用它們編輯源碼,還要學會用它們進行查找、定位、替換等。新手的話推薦使用vim,這也是我目前使用的文本編輯器。 2、學會makefile文件的編寫規則,並結合使用工具aclocal、autoconf和automake生成makefile文件。 3、掌握gcc和gdb的基本用法。掌握gcc的用法對於構建一個軟體包很有益處,當軟體包包含的文件比較多的時候,你還能用gcc把它手動編譯出來,你就會對軟體包中各個文件間的依賴關系有一個清晰的了解。 4、掌握svn/cvs的基本用法。這是linux,也是開源社區最常用的版本管理系統。可以去試著參加sourceforge上的一些開源項目。 二、linux/unix系統調用與標准C庫 系統調用應用軟體與操作系統的介面,其重要性自然不用說,一定要掌握。推薦學習資料為steven先生的UNIX環境高級編程(簡稱APUE)。 三、庫的學習 無論是在哪個平台做軟體開發,對於庫的學習都很重要,linux下的開發庫很多,我主要介紹一下我常常用到的一些庫。 1、glib庫 glib 庫是gtk+和gnome的基礎庫,並具是跨平台的,在linux、unix和windows下都可以用。glib庫對於linux平台開發的影響就像 MFC對windows平台開發的影響一樣,很多開源項目都大量的使用了glib庫,包括gimp、gnome、gaim、evolution和 linux下的集群軟體heartbeat.因為glib庫自帶有基本的數據結構實現,所以在學習glib庫的時候可以順便學習一下基本的數據結構(包括鏈表、樹、隊列和hash表)。 2、libxml庫 libxml是linux平台下解析XML文件的一個基礎庫,現在很多實用軟體都用XML格式的配置文件,所以也有必要學習一下。 3、readline庫 readline 庫是bash shell用的庫,如果要開發命令行程序,那麼使用readline庫可以減少很多工作量,比如bash里的命令行自動補全,在readline里就已經有實現,當然你也可以用自己的實現替代庫的行為。readline庫有很多網站介紹的,只要google一下readline就可以找到一堆了。 4、curses庫 curses 庫以前是vi程序的一部分,後來從vi里提取出來成為一個獨立的庫。curses庫對於編寫終端相關的程序特別有用,比如要在終端某一行某一列定位輸出,改變終端字體的顏色和終端模式。linux下的curses庫用的是GNU實現的ncurses(new curses的意思)。 5、gtk+和KDE庫 這兩個庫是開發GUI應用程序的基礎庫,現在linux下的大部份GUI程序都是基於這兩個庫開發的,對於它們 的學習也是很有必要的。 四、網路的學習