導航:首頁 > 編程語言 > linuxc編程從初學

linuxc編程從初學

發布時間:2023-09-28 13:39:19

1. 如何自學編程

自學編程要做到將編程作為自己的愛好、對自己的電腦了解、確定自己的編程語言、多看書,具體介紹如下:

1、要想真正學習一門知識,就要先盡量保持將其保持為一種愛好,才能一步一步的學習,還要保持耐心,不能為了成果跳躍學習。這兩句話很重要,請在任何時候都要記住,無論那一門課。

2、要對自己家的電腦有一個充分的了解,包括他的位數(64位,32位),內存,型號,和版本,如果要編程的話,一定要對電腦的各個功能有詳細的了解

3、先確定自己要學的編程語言,將其語言環境和編程工具准備好。入門最好使用c-free,或Java(要准備語言環境)入門或是深入都可以使用eclipse,python(要准備語言環境)可以使用editplus。

4、多在當地書城或是網上購買一些所學習的語言的書,可以輕松自學,當然如果你認為僅僅是文字並不夠生動,可以看看一些優秀的教學視頻,但千萬不要放棄書本。

注意事項:

1、明確學習目的 學習編程對大多數IT業人員來說都是非常有用的。

2、邏輯思維能力的培養,學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。

2. linux C編程從初學到精通的目 錄

第1部分 基礎篇
第1章 Linux系統概述 1
1.1 什麼是Linux 2
1.2 Linux系統特點及主要功能 2
1.2.1 Linux系統特點 3
1.2.2 Linux系統的主要功能 3
1.3 Linux的內核版本和發行版本 5
1.4 系統的安裝 6
1.4.1 系統安裝前的准備工作 6
1.4.2 從光碟安裝Linux 6
1.4.3 從硬碟安裝Linux 22
1.4.4 在虛擬機下安裝Linux 22
1.5 Shell的使用 27
1.5.1 Shell簡介 27
1.5.2 常見Shell的種類 28
1.5.3 Shell的簡單使用 29
1.5.4 通配符 30
1.5.5 引號 31
1.5.6 注釋符 33
1.6 Linux常用命令 33
1.6.1 與目錄相關的命令 33
1.6.2 與文件相關的命令 34
1.6.3 與網路服務相關的命令 35
1.7 本章小結 35
實戰演練 36
第2章 C語言編程基礎 37
2.1 C語言的歷史背景 38
2.2 C語言的特點 38
2.3 C語言的基本數據類型 39
2.3.1 整型 39
2.3.2 實型 40
2.3.3 字元型 41
2.4 運算符與表達式 43
2.4.1 算術運算符與算術表達式 43
2.4.2 賦值運算符與賦值表達式 44
2.4.3 逗號運算符與逗號表達式 45
2.5 C程序的3種基本結構 46
2.5.1 順序結構 46
2.5.2 選擇結構 47
2.5.3 循環結構 51
2.6 C語言中的數據輸入與輸出 54
2.6.1 字元輸出函數putchar 54
2.6.2 字元輸入函數getchar 54
2.6.3 格式輸出函數printf 54
2.6.4 格式輸入函數scanf 56
2.7 函數 57
2.7.1 函數的定義 57
2.7.2 函數的調用 58
2.7.3 變數的存儲類別 59
2.8 數組 62
2.8.1 一維數組的定義和使用 63
2.8.2 二維數組的定義和使用 64
2.8.3 字元數組和字元串 65
2.8.4 常用字元串處理函數 66
2.9 指針 69
2.9.1 地址和指針 69
2.9.2 指針的定義和使用 70
2.9.3 數組與指針 71
2.9.4 字元串與指針 72
2.9.5 指向函數的指針 72
2.10 結構體和共用體 73
2.10.1 定義和引用結構體 73
2.10.2 結構體數組 74
2.10.3 指向結構體的指針 74
2.10.4 共用體 75
2.10.5 使用typedef定義類型 77
2.11 鏈表 77
2.11.1 鏈表概述 77
2.11.2 建立動態單向鏈表 78
2.11.3 單向鏈表的輸出 80
2.11.4 對單向鏈表的刪除操作 80
2.11.5 對單向鏈表的插入操作 81
2.11.6 循環鏈表 82
2.11.7 雙向鏈表 82
2.12 位運算符和位運算 83
2.12.1 「按位與」運算符(&) 84
2.12.2 「按位或」運算符(|) 84
2.12.3 「取反」運算符(~) 84
2.12.4 「異或」運算符(^) 84
2.12.5 移位運算符(<<和>>) 85
2.12.6 位域 85
2.13 C語言預處理命令 86
2.13.1 宏定義 86
2.13.2 文件包含 87
2.13.3 條件編譯 88
2.13.4 #error等其他常用預處理命令 89
2.14 本章小結 89
實戰演練 89
第3章 vi與Emacs編輯器 91
3.1 vi的使用 92
3.1.1 啟動與退出vi 92
3.1.2 vi的命令行模式 93
3.1.3 vi的插入模式 96
3.1.4 vi的底行模式 96
3.2 vi使用實例 97
3.3 Emacs的使用 100
3.3.1 啟動與退出Emacs 101
3.3.2 Emacs下的基本操作 102
3.4 Emacs使用實例 107
3.5 本章小結 109
實戰演練 109
第4章 gcc編譯器與gdb調試器 110
4.1 gcc編譯器簡介 111
4.2 如何使用gcc 112
4.2.1 gcc編譯初步 112
4.2.2 警告提示功能 114
4.2.3 優化gcc 116
4.2.4 連接庫 119
4.2.5 同時編譯多個源程序 120
4.2.6 管道 120
4.2.7 調試選項 121
4.3 gdb調試器 122
4.3.1 gdb簡介 122
4.3.2 gdb常用命令 123
4.3.3 gdb調試初步 124
4.4 gdb的使用詳解 126
4.4.1 調用gdb 127
4.4.2 使用斷點 127
4.4.3 查看運行時數據 129
4.4.4 查看源程序 133
4.4.5 改變程序的執行 135
4.5 xxgdb調試器簡介 138
4.6 本章小結 139
實戰演練 139
第5章 make的使用和Makefile的編寫 141
5.1 什麼是make 142
5.1.1 make機制概述 142
5.1.2 make與Makefile的關系 144
5.2 Makefile的書寫規則 147
5.2.1 Makefile的基本語法規則 148
5.2.2 在規則中使用通配符 149
5.2.3 偽目標 149
5.2.4 多目標 151
5.2.5 自動生成依賴性 151
5.3 Makefile的命令 152
5.4 變數 154
5.4.1 變數的基礎 154
5.4.2 賦值變數 154
5.4.3 define關鍵字 156
5.4.4 override指示符 156
5.4.5 目標變數和模式變數 157
5.5 常用函數調用 158
5.5.1 字元串處理函數 158
5.5.2 文件名操作函數 162
5.5.3 循環函數 164
5.5.4 條件判斷函數 165
5.5.5 其他常用函數 166
5.6 隱式規則 168
5.6.1 隱式規則舉例 168
5.6.2 隱式規則中的變數 169
5.6.3 使用模式規則 170
5.7 本章小結 173
實戰演練 173
第2部分 提高篇
第6章 文件I/O操作 174
6.1 Linux文件系統簡介 175
6.1.1 Linux的文件系統結構 175
6.1.2 文件類型 176
6.1.3 文件訪問許可權 179
6.2 基於文件描述符的I/O操作 179
6.2.1 文件描述符 180
6.2.2 標准輸入、標准輸出和標准出錯 180
6.2.3 文件重定向 181
6.2.4 文件的創建、打開與關閉 182
6.2.5 文件的定位 186
6.2.6 文件的讀寫 188
6.3 文件的屬性操作 192
6.3.1 改變文件訪問許可權 192
6.3.2 改變文件所有者 193
6.3.3 重命名 193
6.3.4 修改文件長度 194
6.4 文件的其他操作 195
6.4.1 stat、fstat和lstat函數 195
6.4.2 p和p2函數 196
6.4.3 fcntl函數 197
6.4.4 sync和fsync函數 197
6.5 特殊文件的操作 198
6.5.1 目錄文件的操作 198
6.5.2 鏈接文件的操作 201
6.5.3 管道文件的操作 204
6.5.4 設備文件 204
6.6 本章小結 205
實戰演練 205
第7章 基於流的I/O操作 206
7.1 流與緩存 207
7.1.1 流和FILE對象 207
7.1.2 標准輸入、標准輸出和標准出錯 207
7.1.3 緩存 207
7.1.4 對緩存的操作 210
7.2 流的打開與關閉 212
7.2.1 流的打開 212
7.2.2 流的關閉 214
7.2.3 流關閉前的工作 216
7.3 流的讀寫 216
7.3.1 基於字元的I/O 217
7.3.2 基於行的I/O 220
7.3.3 直接I/O 222
7.3.4 格式化I/O 224
7.4 本章小結 226
實戰演練 227
第8章 進程式控制制 228
8.1 進程的基本概念 229
8.1.1 Linux進程簡介 229
8.1.2 進程與作業 230
8.1.3 進程標識 230
8.2 進程式控制制的相關函數 232
8.2.1 fork和vfork函數 232
8.2.2 exec函數 237
8.2.3 exit和_exit函數 242
8.2.4 wait和waitpid函數 245
8.2.5 進程的一生 251
8.2.6 用戶ID和組ID 251
8.2.7 system函數 253
8.3 多個進程間的關系 255
8.3.1 進程組 255
8.3.2 會話期 256
8.3.3 控制終端 257
8.4 本章小結 259
實戰演練 259
第9章 信號 260
9.1 Linux信號簡介 261
9.1.1 信號的基本概念 261
9.1.2 信號處理機制 265
9.2 信號操作的相關函數 267
9.2.1 信號的處理 267
9.2.2 信號的發送 274
9.2.3 信號的阻塞 282
9.2.4 計時器與信號 284
9.3 本章小結 286
實戰演練 287
第10章 進程間通信 288
10.1 進程間通信簡介 289
10.2 管道 290
10.2.1 管道的概念 290
10.2.2 管道的創建與關閉 291
10.2.3 管道的讀寫 292
10.3 命名管道 297
10.3.1 命名管道的概念 297
10.3.2 命名管道的創建 297
10.3.3 命名管道的讀寫 299
10.4 消息隊列 303
10.4.1 消息隊列的概念 303
10.4.2 消息隊列的創建與打開 305
10.4.3 消息隊列的讀寫 306
10.4.4 獲得或設置消息隊列屬性 308
10.5 共享內存 312
10.5.1 共享內存的概念 312
10.5.2 共享內存的相關操作 313
10.6 信號量 318
10.6.1 信號量的概念 319
10.6.2 信號量集的相關操作 320
10.7 本章小結 325
實戰演練 326
第11章 網路編程 327
11.1 網路編程的基礎知識 328
11.1.1 計算機網路體系結構 328
11.1.2 傳輸控制協議TCP 333
11.1.3 用戶數據報協議UDP 335
11.1.4 客戶機/伺服器模式 336
11.2 套介面編程基礎 336
11.2.1 什麼是套介面 337
11.2.2 埠號的概念 338
11.2.3 套介面的數據結構 338
11.2.4 基本函數 340
11.3 TCP套介面編程 343
11.3.1 TCP套介面通信工作流程 343
11.3.2 TCP套介面Client/Server程序實例 356
11.4 UDP套介面編程 360
11.4.1 UDP套介面通信工作流程 360
11.4.2 UDP套介面Client/Server程序實例 362
11.5 原始套介面編程 365
11.5.1 原始套介面的創建 365
11.5.2 原始套介面程序實例 365
11.6 本章小結 376
實戰演練 376
第12章 Linux圖形界面編程 377
12.1 Linux下的圖形界面編程簡介 378
12.1.1 Qt簡介 378
12.1.2 GTK+簡介 378
12.2 界面基本元件 381
12.2.1 一個簡單的例子 381
12.2.2 窗口 383
12.2.3 標簽 385
12.2.4 按鈕 386
12.2.5 文本框 387
12.3 界面布局元件 389
12.3.1 表格 390
12.3.2 框 393
12.3.3 窗格 395
12.4 其他常用元件 398
12.4.1 進度條、微調按鈕、組合框 398
12.4.2 單選按鈕、復選按鈕 402
12.4.3 下拉菜單 404
12.5 信號與回調函數 406
12.6 本章小結 409
實戰演練 409
第3部分 實戰篇
第13章 設計Linux下的計算器 411
13.1 軟體功能分析 412
13.2 程序模塊的劃分 413
13.3 軟體的具體實現 415
13.3.1 頭文件 415
13.3.2 十六進制界面顯示函數 416
13.3.3 十進制界面顯示函數 417
13.3.4 八進制界面顯示函數 418
13.3.5 二進制界面顯示函數 419
13.3.6 進制間轉換函數 420
13.3.7 信號處理模塊 423
13.3.8 主函數 432
13.4 軟體使用效果演示 438
13.5 本章小結 439
第14章 Linux平台下聊天軟體的設計 440
14.1 軟體功能概述 441
14.1.1 伺服器端功能需求 441
14.1.2 客戶端功能需求 442
14.1.3 錯誤處理需求 442
14.2 Glade集成開發工具簡介 443
14.3 軟體功能模塊劃分 444
14.3.1 伺服器功能模塊劃分 444
14.3.2 客戶端功能模塊劃分 445
14.3.3 消息標識的定義 445
14.3.4 消息結構體的設計 446
14.4 伺服器程序的具體實現 447
14.4.1 伺服器消息處理流程 447
14.4.2 伺服器主要函數和變數 448
14.4.3 伺服器消息處理模塊的設計與實現 449
14.4.4 伺服器數據存儲的方法 450
14.4.5 用戶注冊流程 450
14.5 客戶端程序的具體實現 451
14.5.1 客戶端操作流程 451
14.5.2 客戶端發送和接收消息流程 451
14.5.3 客戶端主要函數和變數 452
14.5.4 客戶端功能模塊的設計與實現 453
14.6 聊天軟體使用效果演示 455
14.7 本章小結 459
第15章 Linux遠程管理工具的設計 460
15.1 軟體功能概述 461
15.1.1 Webmin簡介 461
15.1.2 軟體總體設計 461
15.2 伺服器端程序設計 463
15.2.1 伺服器端工作流程 463
15.2.2 系統用戶管理操作 464
15.2.3 系統用戶組的管理操作 466
15.2.4 系統服務啟動管理 468
15.2.5 DNS管理操作 469
15.2.6 Apache服務管理操作 471
15.2.7 FTP服務管理操作 474
15.3 客戶端程序 475
15.3.1 連接界面 475
15.3.2 主界面 477
15.4 本章小結 479
第16章 Linux下簡易防火牆軟體的設計 480
16.1 Netfilter基礎 481
16.1.1 什麼是Netfilter 481
16.1.2 Netfilter的HOOK機制 482
16.1.3 HOOK的調用 485
16.1.4 HOOK的實現 486
16.1.5 IPTables簡介 488
16.1.6 Netfilter可以實現的控制功能 489
16.2 軟體設計概述 491
16.2.1 軟體整體框架 491
16.2.2 管理端的設計 492
16.2.3 控制端的設計 493
16.3 用Netfilter設計控制端功能模塊 495
16.3.1 ICMP管理控制模塊 495
16.3.2 FTP管理控制模塊 497
16.3.3 HTTP管理控制模塊 499
16.3.4 模塊的編譯、載入與卸載 499
16.4 軟體功能測試 501
16.5 本章小結 503
第17章 基於Linux的嵌入式家庭網關遠程交互操作平台的設計 504
17.1 嵌入式技術簡介 505
17.1.1 嵌入式系統的概念 505
17.1.2 嵌入式操作系統 506
17.1.3 嵌入式處理器 507
17.2 家庭網關的概念及其網路體系結構 509
17.2.1 智能家庭網路的概念 509
17.2.2 家庭網關的遠程交互操作技術簡介 510
17.2.3 嵌入式家庭網關的網路體系結構 510
17.3 嵌入式家庭網關的開發平台 511
17.3.1 S3C2410微處理器簡介 511
17.3.2 交叉編譯環境的建立 513
17.4 遠程交互平台的設計 515
17.4.1 應用軟體的開發模式 515
17.4.2 嵌入式Web伺服器 516
17.4.3 通用網關介面CGI 519
17.5 Linux下軟體模塊的具體實現 520
17.5.1 登錄驗證模塊 521
17.5.2 串口通信模塊 521
17.5.3 中央空調控制模塊 522
17.5.4 智能水表數據採集模塊 528
17.5.5 試驗結果 528
17.6 本章小結 529

3. C語言的編寫工具、編譯軟體、初學者(c語言編程工具)

C語言是一門歷史很長的編程語言,其編譯器和開發工具也多種多樣,其開發工具包括編譯器,現舉幾個開發工具供大家選擇,當然也要根據自己的操作系統來選擇適合自己的開發工具。

好多剛開始接觸c語言的朋友都想知道用上面軟體開發c語言比較好,一般來說微軟的東西肯定是最好的,更適合新手學習,等上手了就可以接觸別的軟體了。

MicrosoftVisualC、MicrosoftVisualStudio、DEVC、Code::Blocks、BorlandC、WaTComC、BorlandCBuilder、GNUDJGPPC、Lwin32CCompiler3.1、HighC、TurbC、g、C-Free和Win-TC、MyTc等等,太多了,由於C語言比較成熟,所以編程環境很多。建議使用MicrosoftVisualC。

在Windows下做軟體開發,編譯器的首選當然是VisualStudio,目前微軟也有免費的MicrosoftVisualC2008Express版本可供下載和使用。但是,如果考慮做跨平台的軟體,選擇g作為編譯器無疑是明智的,無論Linux,MacOSX還是其他的Unix變體,大多選用g作為編譯器,所以,選擇g作為編譯器能夠讓你的軟體提前通過編譯器的驗證,能夠更容易的在不同平台上通過編譯。TDMGCC項目已經幫助大家測試並整合了Windows平台下的g安裝工具TDMGCCOn-DemandInstaller,大家可以根據需要選擇下載並安裝那些工具包。安裝完成後,需要修改環境變數,將安裝目錄加入PATH搜索路徑中。

1、TC2.0:Borland公司的產品,在dos界面下編譯運行,小巧、靈活,但是不能使用滑鼠,界面如下:

菜單命令是alt菜單項的第一個字母,可以調試,在第一次用的時候,可以需要配置一下目錄,如下:

第一次使用可能感覺不舒服(滑鼠不能用的緣故),慢慢熟悉一段時間,就沒事了,當初在學校學習考試都是這個環境。

2、win-TC:在tc2.0的基礎上加上了界面,能夠使用滑鼠,具有語法高亮,可以嵌入匯編等特點,對新手一些,拜託了不能用滑鼠的困難。編寫完源代碼,進行編譯運行即可辯悶,軟體比較容易上手。

3、dev-C:是windows下一款開發c/c的開發環境,使用g為編譯器,遵循標准,功能比較強大,語法高亮態灶源,可以進行單步調試(這對排除錯誤很重要),進行斷點設置等功能,遵循C標准,是一款很強大的開發工具。

4、VC,微軟的產品,編譯器,鏈接器,運行,調試等功能於一體的強大開發工具,特點是功能十分強大,對於新手來說需要一段時間去摸索

c語言編程軟體(支持win7/win8)是一款支持多語言開發的開發系統。c語言編程軟體(支持win7/win8)同時支持c語言,c以及vb語言的開發,軟體能很好的兼容win7以及win8,用戶只需設置軟體兼容性,把它設為win98,winxp等等。

為大家提供的c語言編程軟體為vc6.0。VC6.0是Microsoft公司推出的一個基於Windows系統平台、可視化的集成開發環境,它的源程序按C語言的要求編寫,並加入了微軟提供的功能強大的MFC(MicrosoftFoundationClass)類庫。

c語言編程軟體(支持win7/win8)的MFC類庫中封裝了大部分WindowsAPI函數和Windows控制項,它包含的功能涉及到整個Windows操作系統。MFC不僅給用戶提供了Windows圖形環境下應用程序的框架,而且還提供了創建應用程序的組件,這樣,開發人員不必從頭設計創建和管理一個標准Windows應用程序所需的程序,而是從一個比較高的起點編程,故節省了大量的時間。另外,它提供了大量的代碼,指導帆態用戶編程時實現某些技術和功能。因此,使用VC提供的高度可視化的應用程序開發工具和MFC類庫,可使應用程序開發變得簡單。

4. 新手如何學習Linux

新手學習建議找准學習方向報班學習。

Linux主體分為「運維」與「開發」兩個方向,無論你是Linux相關從業者,還是說愛好都可以歸類到這里,其中「運維」一般是初學者或者轉行人員的首選,而Linux運維主要是對伺服器穩定、性能與安全方面的維護和調試。

實際上Linux入門並不困難,只要具備Linux基礎,讀懂Linux的命令格式,大多數的服務架構都是可以按照文檔部署出來。當然做Linux開發,個人建議去參加培訓學習更有效率,如果報班學習則大概需要4-6個月時間。

學習主要內容有:

1)網路基礎與linux系統的管理

2)優化及高可用技能

3)虛擬化與雲平台技術

4)開發運維

畢業後可從事的工作有:

1)Linux運維工程師

2)資料庫工程師

3)雲計算運維工程師

4)自動化運維工程師

5)雲計算架構工程師等

互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。

想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。

祝你學有所成,望採納。

閱讀全文

與linuxc編程從初學相關的資料

熱點內容
java多線程讀取文件 瀏覽:143
香港外貿伺服器有什麼好處 瀏覽:612
鄧倫參加密室大逃脫結果變成團寵 瀏覽:847
購買文件伺服器怎麼選擇 瀏覽:720
空調壓縮機高壓報警 瀏覽:498
u盤數控程序放哪個文件夾 瀏覽:853
python模擬微信登錄其他APP 瀏覽:301
綁扎鋼筋加密區規范 瀏覽:671
怎麼更換手機壁紙安卓 瀏覽:808
閑魚app賣手機怎麼走驗機 瀏覽:821
安卓三個按鍵音怎麼關閉 瀏覽:64
esp8266手機app源碼 瀏覽:713
伺服器如何建立多個站點 瀏覽:151
加密狗可以在筆記本上做賬嗎 瀏覽:888
學生雲伺服器推薦 瀏覽:509
android銀行卡快捷支付 瀏覽:828
海口手機直播系統源碼 瀏覽:416
怎麼給加密貨幣加圖標 瀏覽:999
phpheader編碼 瀏覽:766
雲解析伺服器的ip地址 瀏覽:951