當前位置:首頁 » 操作系統 » linux刪除函數

linux刪除函數

發布時間: 2024-07-01 00:27:24

A. linux下remove刪除函數刪除文件,文件存在,調用後返回為0,文件卻沒有刪除,求解

如果文件正在被使用的話,文件的真正刪除是在你解除引用之後進行,但是不需要用戶進行操作來干預了,文件一定會刪除.
如果你想調用remove之後馬上看到文件被刪除,建議你判斷是否被佔用。或者使用system("rm -rf filename").

B. 鍒犻櫎鏂囦歡鐨勬柟娉曟湁鍝浜

鍒犻櫎鏂囦歡鐨勬柟娉曚富瑕佹湁浠ヤ笅鍑犵嶏細


1. 浣跨敤鏂囦歡綆$悊鍣ㄦ垨璧勬簮綆$悊鍣錛氬ぇ澶氭暟鎿嶄綔緋葷粺閮芥彁渚涗簡鏂囦歡綆$悊鍣ㄦ垨璧勬簮綆$悊鍣ㄦ潵璁塊棶鏂囦歡緋葷粺銆傚湪鏂囦歡綆$悊鍣ㄦ垨璧勬簮綆$悊鍣ㄧ殑鏂囦歡鍒楄〃涓錛屾壘鍒拌佸垹闄ょ殑鏂囦歡騫跺彸閿鍗曞嚮錛岄夋嫨“鍒犻櫎”鎴栦嬌鐢ㄩ敭鐩樺揩鎹烽敭錛堥氬父鏄疌trl+D錛夋潵鍒犻櫎鏂囦歡銆


2. 浣跨敤鍛戒護琛屽伐鍏鳳細璁稿氭搷浣滅郴緇熸彁渚涗簡鍛戒護琛屽伐鍏鋒潵綆$悊鏂囦歡銆傞氳繃鍦ㄥ懡浠ゆ彁紺虹︽垨緇堢紿楀彛涓杈撳叆閫傚綋鐨勫懡浠わ紝鍙浠ュ垹闄ゆ枃浠躲備緥濡傦紝鍦╓indows涓婏紝鍙浠ヤ嬌鐢“del”鍛戒護錛涘湪Linux鍜宮acOS涓婏紝鍙浠ヤ嬌鐢“rm”鍛戒護銆


3. 浣跨敤緙栫▼璇璦錛氱紪紼嬭璦鎻愪緵浜嗗垹闄ゆ枃浠剁殑鍑芥暟鎴栨柟娉曘備緥濡傦紝鍦≒ython涓錛屽彲浠ヤ嬌鐢╫s妯″潡鐨剅emove()鍑芥暟鏉ュ垹闄ゆ枃浠躲傚湪Java涓錛屽彲浠ヤ嬌鐢‵ileDeleteHelper綾繪潵鍒犻櫎鏂囦歡銆


4. 浣跨敤絎涓夋柟宸ュ叿錛氭湁涓浜涚涓夋柟宸ュ叿鍙浠ュ府鍔╃敤鎴鋒洿鏂逛究鍦板垹闄ゆ枃浠躲備緥濡傦紝鍦╓indows涓婏紝鍙浠ヤ嬌鐢“綺夌庢満”宸ュ叿鏉ュ畨鍏ㄥ湴鍒犻櫎鏂囦歡錛岄伩鍏嶅洜璇鎿嶄綔鑰屾棤娉曟仮澶嶆枃浠躲


闇瑕佹敞鎰忕殑鏄錛屽垹闄ゆ枃浠舵槸涓欏規晱鎰熺殑鎿嶄綔錛岃峰姟蹇呰皚鎱庢搷浣滐紝騫剁『淇濇偍瑕佸垹闄ょ殑鏂囦歡鏄姝g『鐨勩傚湪鎵ц屽垹闄ゆ搷浣滀箣鍓嶏紝鏈濂藉厛澶囦喚閲嶈佺殑鏂囦歡錛屼互闃蹭竾涓銆傛ゅ栵紝瀵逛簬緋葷粺鏂囦歡鎴栬蔣浠跺畨瑁呯▼搴忥紝閫氬父涓嶅緩璁闅忔剰鍒犻櫎錛屼互鍏嶅獎鍝嶇郴緇熺殑紼沖畾鎬у拰杞浠剁殑姝e父榪愯屻

C. linux 好用的命令

Linux運維人員必會的120個命令
跟老男孩學Linux運維:核心系統命令實戰
前言
第1章 Linux命令行簡介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令幫助 / 4
1.3Linux shutdown reboot halt / 9
關機:
shutdown -h now
halt
init 0

第2章 文件和目錄操作命令 / 13
2.1pwd:顯示當前所在的位置 / 13
2.2cd:切換目錄 / 16
2.3tree:以樹形結構顯示目錄下的內容 / 18
2.4mkdir:創建目錄 / 22
2.5touch:創建空文件或改變文件的時間戳屬性 / 27
2.6ls:顯示目錄下的內容及相關屬性信息 / 30
2.7cp:復制文件或目錄 / 39
2.8mv:移動或重命名文件 / 42
2.9rm:刪除文件或目錄 / 45
2.10rmdir:刪除空目錄 / 48
2.11ln:硬鏈接與軟鏈接 / 49
2.12readlink:查看符號鏈接文件的內容 / 54
2.13find:查找目錄下的文件 / 55
2.14xargs:將標准輸入轉換成命令行參數 / 68
2.15rename:重命名文件 / 71
2.16basename:顯示文件名或目錄名 / 72
2.17dirname:顯示文件或目錄路徑 / 72
2.18chattr:改變文件的擴展屬性 / 73
2.19lsattr:查看文件擴展屬性 / 75
2.20file:顯示文件的類型 / 76
2.21md5sum:計算和校驗文件的MD5值 / 77
2.22chown:改變文件或目錄的用戶和用戶組 / 80
2.23chmod:改變文件或目錄許可權 / 81
2.24chgrp:更改文件用戶組 / 85
2.25umask:顯示或設置許可權掩碼 / 86
2.26老男孩從新手成為技術大牛的心法 / 90
第3章 文件過濾及內容編輯處理命令 / 91
3.1cat:合並文件或查看文件內容 / 91
3.2tac:反向顯示文件內容 / 103
3.3more:分頁顯示文件內容 / 104
3.4less:分頁顯示文件內容 / 107
3.5head:顯示文件內容頭部 / 109
3.6tail:顯示文件內容尾部 / 111
3.7tailf:跟蹤日誌文件 / 114
3.8cut:從文本中提取一段文字並輸出 / 115
3.9split:分割文件 / 117
3.10paste:合並文件 / 118
3.11sort:文本排序 / 123
3.12join:按兩個文件的相同欄位合並 / 127
3.13uniq:去除重復行 / 129
3.14wc:統計文件的行數、單詞數或位元組數 / 131
3.15iconv:轉換文件的編碼格式 / 133
3.16dos2unix:將DOS格式文件轉換成UNIX格式 / 134
3.17diff:比較兩個文件的不同 / 135
3.18vimdiff:可視化比較工具 / 138
3.19rev:反向輸出文件內容 / 139
3.20tr:替換或刪除字元 / 140
3.21od:按不同進制顯示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:純文本編輯器 / 147
3.24老男孩逆襲思想:做Linux運維的多個好處 / 152
第4章 文本處理三劍客 / 153
4.1grep:文本過濾工具 / 153
4.2sed:字元流編輯器 / 159
4.3awk基礎入門 / 165
第5章 Linux信息顯示與搜索文件命令 / 176
5.1uname:顯示系統信息 / 176
5.2hostname:顯示或設置系統的主機名 / 178

5.3dmesg:系統啟動異常診斷 / 179
5.4stat:顯示文件或文件系統狀態 / 181
5.5:統計磁碟空間使用情況 / 183
5.6date:顯示與設置系統時間 / 186
5.7echo:顯示一行文本 / 190
5.8watch:監視命令執行情況 / 193
5.9which:顯示命令的全路徑 / 195
5.10whereis:顯示命令及其相關文件全路徑 / 196
5.11locate:快速定位文件路徑 / 197
5.12updatedb:更新mlocate資料庫 / 199
5.13老男孩逆襲思想:新手在工作中如何問問題不會被鄙視 / 200
第6章 文件備份與壓縮命令 / 201
6.1tar:打包備份 / 201
6.2gzip:壓縮或解壓文件 / 208
6.3zip:打包和壓縮文件 / 211
6.4unzip:解壓zip文件 / 212
6.5scp:遠程文件復制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆襲思想:新手如何高效地提問 / 220
第7章 Linux用戶管理及用戶信息查詢命令 / 222
7.1 useradd:創建用戶 / 222
7.2usermod:修改用戶信息 / 227
7.3userdel:刪除用戶 / 229
7.4groupadd:創建新的用戶組 / 230
7.5groupdel:刪除用戶組 / 231
7.6passwd:修改用戶密碼 / 232
7.7chage:修改用戶密碼有效期 / 237
7.8chpasswd:批量更新用戶密碼 / 238
7.9su:切換用戶 / 240
7.10visudo:編輯sudoers文件 / 242
7.11sudo:以另一個用戶身份執行命令 / 244
7.12id:顯示用戶與用戶組的信息 / 248
7.13w:顯示已登錄用戶信息 / 249
7.14who:顯示已登錄用戶信息 / 250
7.15users:顯示已登錄用戶 / 252
7.16whoami:顯示當前登錄的用戶名 / 253
7.17last:顯示用戶登錄列表 / 253
7.18lastb:顯示用戶登錄失敗的記錄 / 254
7.19lastlog:顯示所有用戶的最近登錄記錄 / 255
第8章 Linux磁碟與文件系統管理命令 / 257
8.1fdisk:磁碟分區工具 / 257
8.2partprobe:更新內核的硬碟分區表信息 / 265
8.3tune2fs:調整ext2/ext3/ext4文件系統參數 / 266
8.4parted:磁碟分區工具 / 268
8.5mkfs:創建Linux文件系統 / 272
8.6mpe2fs:導出ext2/ext3/ext4文件系統信息 / 274
8.7resize2fs:調整ext2/ext3/ext4文件系統大小 / 275
8.8fsck:檢查並修復Linux文件系統 / 278
8.9dd:轉換或復制文件 / 281
8.10mount:掛載文件系統 / 284
8.11umount:卸載文件系統 / 288
8.12df:報告文件系統磁碟空間的使用情況 / 289
8.13mkswap:創建交換分區 / 293
8.14swapon:激活交換分區 / 294
8.15swapoff:關閉交換分區 / 295
8.16sync:刷新文件系統緩沖區 / 296
第9章 Linux進程管理命令 / 298
9.1ps:查看進程 / 298
9.2pstree:顯示進程狀態樹 / 305
9.3pgrep:查找匹配條件的進程 / 306
9.4kill:終止進程 / 307
9.5killall:通過進程名終止進程 / 310
9.6pkill:通過進程名終止進程 / 311
9.7top:實時顯示系統中各個進程的資源佔用狀況 / 313
9.8nice:調整程序運行時的優先順序 / 320
9.9renice:調整運行中的進程的優先順序 / 323
9.10nohup:用戶退出系統進程繼續工作 / 324
9.11strace:跟蹤進程的系統調用 / 325
9.12ltrace:跟蹤進程調用庫函數 / 332
9.13runlevel:輸出當前運行級別 / 334
9.14init:初始化Linux進程 / 335
9.15service:管理系統服務 / 335
第10章 Linux網路管理命令 / 338
10.1ifconfig:配置或顯示網路介面信息 / 338
10.2ifup:激活網路介面 / 343
ifup eth0
10.3ifdown:禁用網路介面 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整個網路,所有網卡。
10.4route:顯示或管理路由表 / 344
10.5arp:管理系統的arp緩存 / 350
10.6ip:網路配置工具 / 351
10.7netstat:查看網路狀態 / 358
10.8ss:查看網路狀態 / 362
10.9ping:測試主機之間網路的連通性 / 363
10.10traceroute:追蹤數據傳輸路由狀況 / 366
10.11arping:發送arp請求 / 367
10.12telnet:遠程登錄主機 / 369
10.13nc:多功能網路工具 / 370
10.14ssh:安全地遠程登錄主機 / 373
10.15wget:命令行下載工具 / 376
10.16mailq:顯示郵件傳輸隊列 / 379
10.17mail:發送和接收郵件 / 381
10.18nslookup:域名查詢工具 / 386
10.19dig:域名查詢工具 / 389
10.20host:域名查詢工具 / 393
10.21nmap:網路探測工具和安全/埠掃描器 / 394
10.22tcpmp:監聽網路流量 / 398
第11章 Linux系統管理命令 / 407
11.1lsof:查看進程打開的文件 / 407
11.2uptime:顯示系統的運行時間及負載 / 411
11.3free:查看系統內存信息 / 411
11.4iftop:動態顯示網路介面流量信息 / 413
11.5vmstat:虛擬內存統計 / 415
11.6mpstat:CPU信息統計 / 419
11.7iostat:I/O信息統計 / 420
11.8iotop:動態顯示磁碟I/O統計信息 / 423
11.9sar:收集系統信息 / 425
11.10chkconfig:管理開機服務 / 430
11.11ntsysv:管理開機服務 / 433
11.12 setup:系統管理工具 / 434
11.13ethtool:查詢網卡參數 / 436
11.14mii-tool:管理網路介面的狀態 / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自動化RPM包管理工具 / 446
top命令
第12章 Linux系統常用內置命令 / 450
12.1Linux內置命令概述 / 450
12.2Linux內置命令簡介 / 450
12.3Linux常用內置命令實例 / 452

D. 嵌入式Linux上的C語言編程實踐的目錄

第一部分 基礎知識
第1章 Linux環境下C語言的開發 2
1.1 Linux下的C語言開發環境 2
1.2 在Linux中使用C語言開發 3
1.2.1 開發流程和開發工具 3
1.2.2 Linux中程序的運行原理 4
第2章 嵌入式環境中的C語言開發 7
2.1 嵌入式C語言的開發環境 7
2.2 嵌入式開發中C語言編程要點 9
第二部分 Linux環境中
C語言的開發環境和工具
第3章 Linux的文本編輯工具VI 12
3.1 VI編輯器概述 12
3.1.1 VI簡介 12
3.1.2 VI的工作模式和使用
3.1.2 之前的准備 12
3.1.3 進入和退出VI 13
3.2 VI的增強版VIM 16
3.3 VI編輯器的基本使用方法 17
3.3.1 在屏幕上移動游標 17
3.3.2 插入文本 20
3.3.3 刪除文本 22
3.3.4 修改文本內容 25
3.3.5 替換文本內容 27
3.3.6 合並文本內容 30
3.3.7 移動文本內容 30
3.4 VI編輯器的命令和高級操作 32
3.4.1 VI常用命令的列表 32
3.4.2 VI的一些高級的操作和
3.1.2 使用技巧 35
第4章 GCC程序開發工具 39
4.1 GNU工具綜述 39
4.2 GCC的編譯和連接 43
4.2.1 工程示例 43
4.2.2 編譯、匯編和連接 46
4.2.3 動態庫 48
4.3 GCC的二進制工具 49
4.3.1 ar(歸檔工具) 49
4.3.2 readelf(讀取ELF格式
3.1.2 文件信息) 51
4.3.3 strings(查看字元串) 54
4.3.4 nm(顯示符號信息) 55
4.3.5 strip(刪除符號) 57
4.3.6 objmp(顯示目標
3.1.2 文件信息) 58
4.3.7 obj(復制目標文件) 63
第5章 make工程管理工具 67
5.1 make和Makefile 67
5.1.1 make機制概述 67
5.1.2 make和Makefile的使用 68
5.2 Makefile使用示例 69
5.2.1 簡單的Makefile 69
5.2.2 Makefile中的依賴關系 71
5.2.3 Makefile中使用隱含規則
3.1.2 來編譯程序 73
5.2.4 Makefile中指定依賴關系的
3.1.2 編譯 76
5.3 自動生成Makefile 78
5.3.1 自動生成Makefile的意義和
3.1.2 相關工具 78
5.3.2 自動生成Makefile的流程 79
第6章 GDB調試工具 85
6.1 GDB簡介 85
6.2 使用GDB調試程序 86
6.2.1 基本操作 88
6.2.2 查看命令 90
6.2.3 高級命令 92
6.2.4 attach命令的使用 94
6.3 遠程GDB調試 95
6.3.1 本地GDB調試和遠程GDB
3.1.2 調試的比較 95
6.3.2 遠程GDB調試流程 97
6.3.3 遠程GDB調試示例 98
第三部分 庫函數
第7章 C語言標准庫函數 106
7.1 ISO的C語言標准庫函數
7.1 分類 106
7.2 標准格式化輸入/輸出類函數 107
7.2.1 scanf函數:格式化輸入
3.1.2 字元串 107
7.2.2 printf函數:格式化輸出
3.1.2 字元串 109
7.2.3 putchar函數:輸出字元到
3.1.2 標准輸出 111
7.2.4 getchar函數:從標准輸入
3.1.2 獲取字元 111
7.2.5 putc函數:向文件輸出字元 112
7.2.6 getc函數:從文件輸入字元 112
7.2.7 gets函數:獲得字元串 112
7.2.8 puts函數:輸出指定字元串 113
7.2.9 ungetc函數:把字元
3.1.2 寫迴流中 113
7.3 字元處理類函數 114
7.4 字元串處理及轉換函數 116
7.4.1 sprintf函數:格式化輸出
3.1.2 字元串到一個緩沖區 116
7.4.2 strcat和strncat函數:
3.1.2 字元串連接 119
7.4.3 strcpy和strncpy函數:
3.1.2 字元串復制 120
7.4.4 strcmp和strncmp函數:
3.1.2 字元串比較 121
7.4.5 strlen函數:獲取字元串
3.1.2 長度 122
7.4.6 strchr和strrchr函數:字元/
3.1.2 字元串定位 122
7.4.7 strstr函數:字元串查找 123
7.4.8 strrev函數:字元串逆序 124
7.4.9 strupr和strlwr函數:字母
3.1.2 形式轉換 125
7.4.10 strp和strnp函數:
3.1.2 字元串復制 125
7.4.11 memset函數:內存設置 126
7.4.12 memmove函數:內存移動 126
7.4.13 memcmp函數:內存比較 127
7.4.14 memcpy函數:內存復制 128
7.5 數學計算類函數 128
7.6 數據結構和演算法類函數 133
7.6.1 bsearch函數:二元搜索 133
7.6.2 lfind函數:線性搜索 134
7.6.3 lsearch函數:線性搜索 135
7.6.4 qsort函數:利用快速排序法
3.1.2 排列數組 136
7.6.5 rand函數:產生隨機數 136
7.6.6 srand函數:設置隨機
3.1.2 數種子 137
7.7 文件I/O操作類相關函數 137
7.7.1 fopen函數:打開文件 138
7.7.2 fclose函數:關閉文件 139
7.7.3 fgetc函數:從文件中讀取
3.1.2 一個字元 139
7.7.4 fputc函數:將一指定字元
3.1.2 寫入文件流中 139
7.7.5 fgets函數:從文件中讀取
3.1.2 一字元串 140
7.7.6 fputs函數:將一指定的
3.1.2 字元串寫入文件內 140
7.7.7 rewind函數:重設文件流的
3.1.2 讀寫位置為文件開頭 141
7.7.8 ftell函數:取得文件流的
3.1.2 讀取位置 141
7.7.9 fseek函數:移動文件流的
3.1.2 讀寫位置 141
7.7.10 fwrite函數:將數據寫至
7.7.10 文件流 142
7.7.11 fread函數:從文件流讀取
7.7.10 數據 142
7.7.12 remove函數:刪除文件 143
7.7.13 rename函數:更改文件
7.7.10 名稱或位置 143
7.7.14 freopen函數:重新打開
7.7.10 文件 144
7.7.15 fflush函數:同步緩沖區 144
7.7.16 fgetpos函數:獲得文件
7.7.10 位置 145
7.7.17 fsetpos函數:設置文件
7.7.10 位置 145
7.7.18 mktemp函數:建立臨時
7.7.10 文件 146
7.7.19 tmpfile函數:臨時文件 146
7.7.20 tmpnam:得到臨時文件名 147
7.8 日期時間類函數 147
7.8.1 clock函數:獲得CPU時間 148
7.8.2 time函數:獲得當前日歷
7.8.2 時間 148
7.8.3 difftime函數:獲得時間
7.8.2 差值 148
7.8.4 gmtime函數:將日歷時間
7.8.2 轉換成UTC時間 149
7.8.5 mktime函數:將UTC時間
7.8.2 轉換成日歷時間 149
7.8.6 asctime函數:將UTC時間
7.8.2 轉換成字元串 149
7.8.7 ctime函數:將日歷時間轉換
7.8.2 成當地時間的字元串 150
7.8.8 localtime函數:將日歷時間
7.8.2 轉換成本地時間 150
7.8.9 strftime函數:轉換日期和
7.8.2 時間格式 151
7.9 國際化和本地化函數 152
7.9.1 setlocale函數:本地化控制
7.8.2 函數 153
7.9.2 localeconv函數:本地化
7.8.2 轉換 154
7.10 錯誤處理類函數 155
7.10.1 clearerr函數:清除流中的
7.10.1 結束指示符和錯誤指示符 155
7.10.2 feof函數:指示文件結束 155
7.10.3 ferror函數:指示文件出錯 156
7.10.4 perror函數:輸出出錯信息 156
7.10.5 errno函數:錯誤編號記錄 156
7.11 其他一些工具函數 157
7.11.1 assert函數:程序診斷 157
7.11.2 長跳轉函數 157
7.11.3 可變長的參數控制函數 160
7.11.4 獲取結構體成員函數
7.10.1 (宏) 161
7.12 一些標准庫中有用的宏 161
第8章 Linux中C語言的擴展庫
函數 163
8.1 文件I/O操作函數 163
8.1.1 open函數:打開文件 163
8.1.2 close函數:關閉文件 164
8.1.3 read函數:讀文件 165
8.1.4 write函數:寫文件 165
8.1.5 lseek函數:文件定位 167
8.1.6 ioctl函數:文件控制 167
8.1.7 flock函數:鎖定文件 167
8.1.8 mmap函數和munmap函數:
8.1.8 內存映射 168
8.1.9 create函數:創建新文件 170
8.1.10 p函數和p2函數:
8.1.10 復制文件描述符 171
8.1.11 fcntl函數:改變已打開的
8.1.10 文件的屬性 171
8.2 文件許可權相關的操作函數 172
8.2.1 access函數:判斷是否
8.2.1 具有存取文件的許可權 172
8.2.2 chown函數和fchown函數:
8.2.1 改變文件的所有者 173
8.2.3 chmod函數和fchmod函數:
8.2.1 改變許可權 173
8.2.4 unlink函數:刪除文件 173
8.2.5 utime函數和utimes函數:
8.2.1 改變文件時間 174
8.2.6 umask函數:設置建立
8.2.1 新文件時的許可權掩碼 175
8.2.7 link函數:建立文件連接 175
8.2.8 stat函數、fstat函數和lstat
8.2.1 函數:獲取文件信息 175
8.3 用戶組操作函數 176
8.3.1 getgid函數和setgid函數:
8.2.1 獲得/設置組識別碼 176
8.3.2 getegid函數和setegid函數:
8.2.1 獲得/設置有效的組識別碼 177
8.3.3 getuid函數和setuid函數:
8.2.1 獲得/設置真實的用戶識別碼 177
8.3.4 geteuid函數和seteuid函數:
8.2.1 獲得/設置有效的用戶識別碼 178
8.3.5 getgroups函數和setgroups
8.2.1 函數:獲得/設置組代碼 178
8.4 信號類函數 179
8.4.1 kill函數:傳送信號給指定的
8.2.1 進程 181
8.4.2 raise函數:信號發送函數 181
8.4.3 alarm函數:設置超時函數 182
8.4.4 signal函數:信號安裝函數 182
8.5 進程處理函數 183
8.5.1 getpid函數和getppid函數:
8.2.1 獲得進程ID和父進程ID 183
8.5.2 fork函數:建立子進程 183
8.5.3 sleep函數和usleep函數:
8.2.1 讓進程暫停執行一段時間 185
8.5.4 exec函數族:找到可執行
8.2.1 文件 185
8.5.5 _ exit函數和_Exit函數:
8.2.1 結束進程執行 188
第四部分 C語言高級編程
第9章 動態內存的堆與棧 190
9.1 程序內存區域的使用 190
9.1.1 靜態內存與動態內存 190
9.1.2 C語言中的動態內存 191
9.2 C程序中棧空間的使用 196
9.2.1 參數使用棧空間 196
9.2.2 自動變數使用棧空間 199
9.2.3 程序中較大的棧 201
9.2.4 棧空間的特性 202
9.3 C程序中的堆空間使用 203
9.3.1 分配和釋放堆內存的庫函數 203
9.3.2 庫函數使用 204
9.3.3 堆內存的特性 218
9.4 堆內存和棧內存使用的比較 222
9.4.1 利用返回值傳遞信息 222
9.4.2 利用參數傳遞信息 226
9.4.3 堆與棧內存管理的區別 231
第10章 函數指針的使用 232
10.1 函數指針的概念 232
10.1.1 C語言函數的本質 232
10.1.2 函數指針在C語言中的
10.1.2 意義 234
10.2 函數指針的使用 237
10.2.1 函數指針使用初步 237
10.2.2 函數指針的類型定義 240
10.2.3 函數指針作為結構體成員 242
10.2.4 函數指針作為函數的參數 243
10.2.5 函數指針作為函數的
10.2.5 返回值 244
10.2.6 函數指針數組 246
10.3 函數指針使用示例 248
第11章 回調函數的使用 252
11.1 回調函數的概念與作用 252
11.1.1 程序調用的方式 252
11.1.2 回調函數的作用 254
11.2 回調函數的語法 254
11.2.1 簡單的回調函數 254
11.2.2 完全形式的回調函數 256
11.3 回調函數的使用 259
11.3.1 qsort中的回調函數 259
11.3.2 atexit和on_exit函數的
10.2.5 注冊退出函數 263
第12章 C語言實現對象編程 268
12.1 C語言實現基於對象編程的
12.1 概念與作用 268
12.2 C語言基於對象編程實現
12.1 封裝 269
12.2.1 簡單的程序示例 269
12.2.2 C語言基於對象編程的
10.2.5 詳解 272
12.2.3 C語言基於對象編程與
10.2.5 C++面向對象編程的對比 275
12.3 C語言基於對象編程實現
12.3 部分繼承功能 278
12.3.1 利用數據結構的包含實現
10.2.5 繼承功能 279
12.3.2 利用私有指針實現繼承
10.2.5 功能 282
12.3.3 C語言實現繼承的總結 287
12.4 C語言基於對象編程實現
12.4 部分多態功能 288
12.4.1 利用操作指針組的包含
10.2.5 實現多態功能 288
12.4.2 C語言實現多態功能的總結 292
12.5 對C語言實現基於對象
12.5 編程的思考 292
12.5.1 C語言基於對象編程的
10.2.5 特性 292
12.5.2 C語言基於對象編程中介面、
10.2.5 實現和調用者的關系 293
第五部分 在嵌入式
環境下的C語言編程
第13章 C語言程序的內存布局 295
13.1 C語言程序的存儲區域 295
13.2 C語言程序的段 297
13.2.1 段的分類 297
13.2.2 程序中段的使用 298
13.3 可執行程序的連接 301
13.3.1 可執行程序的組成 301
13.3.2 各個目標文件的關系 303
13.3.3 連接錯誤示例 304
13.4 C語言程序的運行 309
13.4.1 RAM調試運行 311
13.4.2 固化程序的XIP運行 312
13.4.3 固化程序的載入運行 313
13.4.4 C語言程序的運行總結 315
第14章 嵌入式C語言常用語法 317
14.1 內存指針操作 317
14.1.1 內存操作的意義 317
14.1.2 使用指針操作內存 319
14.1.3 volatile的使用 324
14.1.4 嵌入式系統指針的實際
10.2.5 應用 325
14.2 位操作 327
14.2.1 位操作的意義 327
14.2.2 位操作的語法 328
14.3 大小端與對齊問題 330
14.3.1 大小端問題 331
14.3.2 內存對齊問題 335
14.3.3 結構體成員的對齊問題 338
14.4 程序的跳轉 344
14.4.1 嵌入式系統程序跳轉的
10.2.5 類型 344
14.4.2 C語言中實現程序的跳轉 345
第15章 嵌入式C語言編程的技巧 348
15.1 程序的優化技巧 348
15.1.1 循環緩沖區 348
15.1.2 查表法 350
15.1.3 針對循環執行效率的
10.2.5 優化 353
15.2 關於小數運算 355
15.3 函數參數和返回值的傳遞 357
15.4 變數的初始化技巧 360
15.4.1 數組的初始化 360
15.4.2 結構體的初始化 362
15.4.3 變數的初始化總結 362
15.5 程序的調試和宏使用的技巧 363
15.5.1 列印文件、函數和程序行 363
15.5.2 #:字元串化操作符 364
15.5.3 ##:連接操作符 366
15.5.4 調試宏的第一種定義方式 367
15.5.5 調試宏的第二種定義方式 368
15.5.6 對調試語句進行分級審查 369
15.5.7 條件編譯調試語句 370
15.5.8 使用do…while的宏定義 372
15.6 代碼剖析 373
參考文獻 378

E. Linux C函數實例速查手冊的目錄

第1章 初級I/O函數
1.1 close函數:關閉已經打開的文件
1.2 creat函數:創建一個文件
1.3 p函數:復制文件描述符
1.4 p2函數:復制文件描述符到指定的位置
1.5 fcntl函數:改變文件的狀態
1.6 fsync函數:將緩沖區數據回寫到磁碟文件
1.7 Lseek函數:移動文件的讀寫位置
1.8 open函數:打開一個文件
1.9 read函數:讀取文件的數據
1.10 sync函數:將所有打開的文件寫回磁碟
1.11 write函數:輸出內容到文件
第2章 文件管理操作函數
2.1 access函數:判斷進程是否具有訪問文件的許可權
2.2 alphasort函數:按照字母順序排序目錄結構
2.3 chdir函數:改變當前的工作目錄
2.4 chmod函數:改變文件的許可權
2.5 chown函數:改變文件的所有者
2.6 chroot函數:改變進程的根目錄
2.7 closedir函數:關閉目錄文件
2.8 fchdir函數:使用文件描述符改變當前的工作目錄
2.9 fchmod函數:改變一個已經打開的文件的許可權
2.10 fstat函數:得到一個打開文件的狀態
2.11 truncate函數:改變一個打開文件的大小
2.12 ftw函數:遍歷目錄樹
2.13 get_current_dir_name函數:取得當前的工作目錄
2.14 getcwd函數:取得進程的當前工作目錄
2.15 lchown函數:改變符號鏈接文件的擁有者
2.16 link函數:建立一個硬鏈接
2.17 lstat函數:得到符號鏈接的文件狀態
2.18 nftw函數:遍歷目錄樹
2.19 opendir函數:打開目錄文件
2.20 readdir函數:讀取目錄文件的內容
2.21 readlink函數:讀取符號鏈接文件本身的內容
2.22 realpath函數:將相對目錄路徑轉換成絕對路徑
2.23 remove函數:刪除文件或者目錄
2.24 rename函數:更改文件的名稱或位置
2.25 rewinddir函數:回卷目錄文件
2.26 seekdir函數:文件定位函數
2.27 stat函數:取得文件狀態
2.28 symlink函數:創建一個符號鏈接
2.29 telldir函數:取得目錄文件的讀取位置
2.30 truncate函數:改變文件大小
2.31 umask:設置創建文件時使用的許可權掩碼
2.32 unlink函數:刪除文件的一個硬鏈接
第3章 標准I/O函數
3.1 clearerr函數:清除錯誤標志
3.2 fclose函數:關閉流文件描述符
3.3 fdopen函數:轉換文件描述符到文件指針
3.4 feof函數:文件結束判斷函數
3.5 fflush函數:刷新流文件讀寫緩存
3.6 fgetc函數:從流文件中讀取一個字元
3.7 fgetpos函數:返迴流文件當前讀寫位置
3.8 fgets函數:從流文件中讀出一行數據
3.9 fileno函數:獲得流文件的文件描述符
3.10 fopen函數:打開文件
3.11 fputc函數:將字元寫入流文件
3.12 fputs函數:將字元串寫入流文件
3.13 fread函數:從流文件中讀出數據
3.14 freopen函數:打開文件
3.15 fseek函數:移動流文件的讀寫位置
3.16 fsetpos函數:設置流文件當前讀寫位置
3.17 ftell函數:得到流文件的讀取位置
3.18 fwrite函數:向流文件中寫入數據
3.19 getc函數:從文件中讀出一個字元
3.20 getchar函數:從標准輸入中讀入一個字元
3.21 gets函數:從標准輸入中讀入一行數據
3.22 mktemp函數:產生臨時文件的文件名
3.23 putc函數:將字元寫入文件
3.24 putchar函數:將字元輸出到標准輸出中
3.25 puts函數:將字元串輸出在標准輸出中
3.26 rewind函數:將流文件的讀寫位置移動到文件的起始位置
3.27 setbuf函數:設置文件緩沖區
3.28 setbuffer函數:設置文件緩沖區
3.29 setlinebuf函數:設置行緩沖模式
3.30 setvbuf函數:設置自定義文件緩沖區
3.31 tmpfile函數:建立臨時的二進制文件
3.32 ungetc函數:將字元寫迴文件
第4章 格式化輸入輸出函數
4.1 fprintf函數:格式化輸出到文件
4.2 fscanf函數:格式化從文件中讀出數據
4.3 printf函數:格式化輸出
4.4 scanf函數:格式化輸入
4.5 snprintf函數:格式化字元輸入
4.6 sprintf函數:格式化字元串列印
4.7 sscanf函數:格式化字元串取值
4.8 vfprintf函數:可變參數輸出函數
4.9 vfscanf函數:格式化輸入
4.10 vprintf函數:格式化輸出函數
4.11 vscanf函數:格式化輸入函數
4.12 vsnprintf函數:格式化字元串復制
4.13 vsprintf函數:格式化字元串復制
4.14 vsscanf函數:格式化字元輸入
第5章 進程式控制制
5.1 abort函數:進程異常終止函數
5.2 atexit函數:進程終止處理函數
5.3 execl函數:執行文件函數
5.4 execle函數:執行文件的函數
5.5 execlp函數:從PATH環境變數中查找文件並執行
5.6 execv函數:執行文件
5.7 execve函數:執行文件
5.8 execvp函數:執行文件
5.9 exit函數:結束進程運行的函數
5.10 _exit函數:結束進程運行的函數
5.11 fork函數:建立一個新的進程
5.12 getgid函數:取得實際進程組ID
5.13 getegid函數:取得有效進程組ID
5.14 getpid函數:取得有效組ID
5.15 getppid函數:取得父進程的進程識別碼
5.16 getpriority函數:取得進程執行優先順序
5.17 longjmp函數:跳到原先setjmp存儲的堆棧環境
5.18 on_exit函數:設置程序正常結束前調用的函數
5.19 setjmp函數:存儲當前堆棧環境
5.20 setgid函數:設置進程的進程組ID
5.21 setuid函數:設置進程組ID
5.22 setpriority函數:設置程序進程優先順序
5.23 siglongjmp函數:跳到原先sigset jmp存儲的堆棧環境
5.24 sigsetjmp函數:存儲當前堆棧環境和屏蔽的信號集
5.25 system函數:執行Shell命令
5.26 vfork函數:建立一個新的進程
5.27 wait函數:等待子進程中斷或結束
5.28 waitpid函數:等待子進程中斷或結束
5.29 wait3函數:等待進程結束並且輸出子進程統計信息
第6章 進程間通信函數
6.1 ftok函數:獲得項目相關的IPC鍵值
6.2 msgctl函數:消息隊列操作函數
6.3 msgget函數:創建或打開消息隊列
6.4 msgrcv函數:讀取消息隊列
6.5 msgsnd函數:向消息隊列中寫入消息
6.6 semctl函數:信號量操作函數
6.7 semget函數:創建或打開信號量
6.8 semop函數:釋放或獲取信號量
6.9 shmat函數:導入共享內存
6.10 shmctl函數:共享內存操作函數
6.11 shmdt函數:將共享內存從程序中脫離
6.12 shmget函數:創建共享內存
6.13 mkfifo函數:創建fifo管道函數
6.14 pclose函數:關閉管道文件
6.15 pipe函數:創建匿名管道
6.16 popen函數:創建管道文件
第7章 信號函數
7.1 alarm函數:內核定時器函數
7.2 kill函數:信號發送函數
7.3 pause函數:進程暫停執行函數
7.4 raise函數:向進程自身發送信號函數
7.5 sigaction函數:高級信號處理方式設置函數
7.6 sigaddset函數:添加信號到信號集函數
7.7 sigdelset函數:刪除信號集中對應信號函數
7.8 sigemptyset函數:清空信號集函數
7.9 sigfillset函數:填充信號集函數
7.10 sigismember函數:測試某個信號是否在信號集中
7.11 signal函數:信號處理方式設置函數
7.12 sigpause函數:暫停進程直到信號到來
7.13 sigpending函數:查詢未決信號
7.14 sigprocmask函數:信號屏蔽函數
7.15 sigsuspend函數:暫停直到信號到來
7.16 sleep函數:讓進程休眠一段時間
第8章 用戶、組函數及環境變數函數
8.1 clearenv函數:刪除所有環境變數的值
8.2 cuserid函數:獲得用戶名函數
8.3 endgrent函數:關閉系統組文件函數
8.4 endpwent函數:關閉系統口令函數
8.5 entent函數:關閉utmp文件
8.6 fgetgrent函數:從文件中讀取組數據
8.7 fgetpwent函數:從文件中讀取密碼格式數據
8.8 getegid函數:獲得有效(effective gid)組識別符
8.9 getenv函數:取得環境變數的值
8.10 geteuid函數:獲得有效(effective uid)用戶識別符
8.11 getgid函數:獲得組識別符
8.12 getgrent函數:從文件/etc/group中讀取組信息
8.13 getgrgid函數:從文件/etc/group中查找組信息
8.14 getgrnam函數:從文件/etc/group中查找組信息
8.15 getgroups函數:返回當前用戶所屬的組列表
8.16 getlogin函數:獲取當前用戶的賬號名稱
8.17 getpw函數:獲取指定uid的用戶信息
8.18 getpwent函數:讀取/etc/passwd文件中的數據
8.19 getpwnam函數:以用戶名獲取用戶信息
8.20 getpwuid函數:以用戶ID獲取用戶信息
8.21 getuid函數:獲取當前進程所屬的用戶ID
8.22 getutent函數:獲取登錄信息
8.23 getutid函數:獲取指定用戶ID的登錄信息
8.24 getutline函數:查找指定的登錄信息
8.25 initgroups函數:初始化組信息
8.26 logwtmp函數:添加登錄記錄信息
8.27 putenv函數:改變環境變數的值
8.28 pututline函數:添加登錄信息
8.29 setegid函數:設置有效組ID
8.30 setenv函數:改變環境變數的值
8.31 seteuid函數:設置有效用戶ID
8.32 setfsgid函數:設置進程的文件系統的組ID
8.33 setfsuid函數:設置進程的文件系統的用戶ID
8.34 setgid函數:設置進程的組ID
8.35 setgrent函數:將文件etc/group的讀寫位置移動到起始位置
8.36 setgroups函數:設置當前進程的組識別符
8.37 setpwent函數:將文件etc/passwd的讀寫位置移動到起始位置
8.38 setregid函數:設置當前進程的真實以及有效組ID
8.39 setreuid函數:設置當前進程的真實以及有效用戶ID
8.40 setuid函數:設置進程的用戶ID
8.41 setutent函數:將文件utmp的讀寫位置移動到起始位置
8.42 unsetenv函數:清除環境變數的值
8.43 updwtmp函數:將登錄數據記錄寫入utmp文件
8.44 utmpname函數:設置文件utmp的絕對位置
第9章 錯誤處理與內存分配函數
9.1 brk函數:改變數據段大小
9.2 calloc函數:內存分配函數
9.3 ferror函數:文件錯誤判斷
9.4 free函數:釋放動態分配內存函數
9.5 getpagesize函數:獲得操作系統內存頁大小函數
9.6 malloc函數:動態內存分配函數
9.7 mmap函數:文件映射函數
9.8 munmap函數:釋放映射的內存地址
9.9 perror函數:錯誤原因輸出函數
9.10 realloc函數:內存截取函數
9.11 sbrk函數:增加數據空間
9.12 strerror函數:錯誤代碼查詢
第10章 日誌函數、動態函數與正則表達式函數
10.1 closelog函數:關閉信息記錄
10.2 dlclose函數:關閉動態庫文件
10.3 dlerror函數:動態函數出錯處理
10.4 dlopen函數:打開動態庫文件
10.5 dlsym函數:在動態庫文件中查找函數
10.6 openlog函數:打開記錄信息
10.7 regcomp函數:編譯正則表達式
10.8 regerror函數:編譯錯誤判斷函數
10.9 regexec函數:執行正則匹配
10.10 regfree函數:釋放正則模式串資源
10.11 syslog函數:輸出記錄信息
第11章 時間函數
11.1 asctime函數:字元串時間操作函數
11.2 clock函數:計算運行時間函數
11.3 ctime函數:字元串時間函數
11.4 difftime函數:計算時間差函數
11.5 ftime函數:取得系統時間
11.6 gettimeofday函數:取得系統當前時間
11.7 gmtime函數:日歷時間格式函數
11.8 localtime函數:獲得當前系統時間
11.9 mktime函數:系統時間轉換函數
11.10 settimeofday函數:系統時間設置函數
11.11 strftime函數:時間格式化輸出函數
11.12 time函數:獲得系統當前時間
11.13 tzset函數:設置系統時區變數tzname
第12章 socket相關函數
12.1 accept函數:處理socket請求函數
12.2 bind函數:將socket描述符與一個套介面綁定
12.3 connect函數:與遠程主機連接
12.4 endprotoent函數:結束網路協議的讀取函數
12.5 endservent函數:關閉文件/etc/services
12.6 gethostbyaddr函數:由IP獲得主機信息
12.7 gethostbyname函數:由主機名獲得主機信息
12.8 getprotobyname函數:由協議名獲取協議數據
12.9 getprotobynumber函數:由協議編號獲取協議數據
12.10 getprotoent函數:讀取文件/etc/rotoent中的網路協議數據
12.11 getservbyname函數:獲得網路服務協議數據
12.12 getservbyport函數:獲得網路服務協議數據
12.13 getservent函數:讀取主機網路服務數據
12.14 getsockopt函數:獲得指定socket描述符的狀態
12.15 herror函數:錯誤原因輸出函數
12.16 hstrerror函數:錯誤代碼查詢
12.17 htonl函數:地址位元組順序轉換
12.18 htons函數:地址位元組順序轉換
12.19 inet_addr函數:網路地址類型轉換
12.20 inet_aton函數:網路地址類型轉換
12.21 inet_ntoa函數:網路地址類型轉換
12.22 listen函數:網路socket監聽
12.23 ntohl函數:地址位元組順序轉換
12.24 ntohs函數:地址位元組順序轉換
12.25 recv函數:接收消息
12.26 recvfrom函數:接收消息
12.27 recvmsg函數:多緩沖讀取數據
12.28 send函數:向遠程主機發送數據
12.29 sendto函數:發送數據到遠程主機
12.30 setprotoent函數:打開網路協議文件
12.31 setservent函數:打開網路服務文件
12.32 setsockopt函數:設置socket描述符的狀態
12.33 shutdown函數:結束socket套接字
12.34 socket函數:創建網路套接字
第13章 字元測試函數
13.1 isalnum函數:判斷字元是否為英文字母或數字
13.2 isalpha函數:判斷字元是否為英文字母
13.3 isascii函數:判斷字元是否為ASCII字元
13.4 isblank函數:判斷字元是否為空白字元
13.5 iscntrl函數:判斷字元是否為ASCII的控制字元
13.6 isdigit函數:判斷字元是否為阿拉伯數字
13.7 isgraph函數:判斷字元是否為可列印字元
13.8 islower函數:判斷字元是否為小寫英文字母
13.9 isprint函數:判斷字元是否為可列印字元
13.10 isspace函數:判斷字元是否為空格字元
13.11 ispunct函數:判斷字元是否為標點符號
13.12 isupper函數:判斷字元是否為大寫英文字母
13.13 isxdigit函數:判斷字元是否為十六進制數字
第14章 數據轉換函數
14.1 atof函數:將字元串轉換成浮點數
14.2 atoi函數:將字元串轉換成整數
14.3 atol函數:將字元串轉換成長整數
14.4 ecvt函數:將浮點數轉換成字元串
14.5 fcvt函數:將浮點數轉換成字元串
14.6 gcvt函數:將浮點數轉換成字元串
14.7 strtod函數:將字元串轉換成浮點數
14.8 strtol函數:將字元串轉換成長整數
14.9 strtoul函數:將字元串轉換成無符號長整數
14.10 toascii函數:將整數轉換成合法的ASCII字元
14.11 tolower函數:將大寫字母轉換成小寫字母
14.12 toupper函數:將小寫字母轉換成大寫字母
第15章 字元串處理函數
15.1 bcmp函數:比較兩塊內存中的內容
15.2 b函數:復制內存中的內容
15.3 bzero函數:將一塊內存內容全清零
15.4 ffs函數:在一個整數中查找第一個值為真的位
15.5 index函數:查找字元串中第一個出現的指定字元
15.6 memccpy函數:復制內存中的內容
15.7 memchr函數:在一塊內存指定范圍查找一個指定字元
15.8 memcmp函數:比較內存中存放的內容
15.9 memcpy函數:復制一塊內存內容到另一塊中
15.10 memfrob函數:對某個內存區重新編碼
15.11 memmove函數:復制內存內容
15.12 memset函數:將某值填入到一塊內存區域
15.13 rindex函數:查找字元串中最後一個出現的指定字元
15.14 strcasecmp函數:忽略大小寫比較字元串
15.15 strcat函數:將一個字元串連接另一字元串的尾部
15.16 strchr函數:查找字元串中指定字元
15.17 strcmp函數:比較兩個字元串
15.18 strcoll的函數:根據當前環境信息來比較字元串
15.19 strcpy函數:復制一個字元串的內容到另一個字元串中
15.20 strcspn函數:計算字元串中由非指定字元集字元組成的子字元串的長度
15.21 strp函數:復制字元串內容
15.22 strfry函數:隨機重組一個字元串
15.23 strlen函數:返回字元串長度
15.24 strncasecmp函數:忽略大小寫比較兩個字元串
15.25 strncat函數:將一個字元串的前n個字元連接到另一字元串的尾部
15.26 strncmp函數:比較兩個字元串
15.27 strncpy函數:復制字元串
15.28 strpbrk函數:查找字元串中第一個出現的指定字元
15.29 strrchr函數:查找字元串中最後一個出現的指定字元
15.30 strspn函數:計算字元串中由指定字元集字元組成的子字元串的長度
第16章 數學計算函數
16.1 abs函數:計算整數的絕對值
16.2 acos函數:計算反餘弦的值
16.3 asin函數:計算反正弦的值
16.4 atan函數:計算反正切的值
16.5 atan2函數:計算反正切的值
16.6 ceil函數:計算大於或等於給定參數的最小整數
16.7 cos函數:計算餘弦的值
16.8 cosh函數:計算雙曲線的餘弦值
16.9 div函數:計算兩整數相除後的商和余數
16.10 exp函數:計算浮點數的指數
16.11 fabs函數:計算浮點數的絕對值
16.12 frexp函數:計算浮點數的尾數和指數
16.13 hypot函數:計算直角三角形斜邊長度
16.14 labs函數:計算長整數的絕對值
16.15 ldexp函數:計算浮點數與2的exp次方的積
16.16 ldiv函數:計算兩長整數相除後的商和余數
16.17 log函數:計算以e為底的對數值
16.18 log10函數:計算以10為底的對數值
16.19 modf函數:將浮點數分解為小數和整數兩部分
16.20 pow函數:計算次方值
16.21 sin函數:取正弦的值
16.22 sinh函數:計算雙曲線的正弦值
16.23 sqrt函數:計算浮點數的平方根
16.24 tan函數:計算角度的正切值
16.25 tanh函數:計算雙曲線的正切函數值
第17章 隨機數及數據加密函數
17.1 crypt函數:對字元串使用DES演算法編碼
17.2 drand48函數:產生一個正的隨機浮點數
17.3 erand48函數:產生一個正的隨機浮點數
17.4 initstate:建立隨機數狀態數組
17.5 jrand48函數:產生一個長整型的隨機數
17.6 lcong48函數:設置48位運算的隨機數種子
17.7 lrand48函數:產生一個正的長整型隨機數
17.8 mrand48函數:產生一個長整型隨機數
17.9 nrand48函數:產生一個正的長整數隨機數
17.10 rand函數:產生偽隨機數
17.11 random函數:產生隨機數
17.12 seed48函數:設置48位運算的隨機數種子
17.13 setstate函數:建立隨機數狀態數組
17.14 srand函數:設置隨機數種子
17.15 srand48函數:設置48位運算的隨機數種子
17.16 srandom函數:設置隨機數種子
17.17 getpass函數:取得用戶輸入密碼字元串
第18章 數據結構函數
18.1 bsearch函數:在有序數組中二分查找數據
18.2 hcreate函數:建立哈希表
18.3 hdestroy函數:刪除哈希表
18.4 hsearch函數:在哈希表中查找關鍵數據
18.5 lfind函數:線性搜索
18.6 lsearch函數:線性搜索
18.7 qsort函數:使用快速排序法排列數組
18.8 tdelete函數:從二叉樹中刪除數據
18.9 tfind函數:搜索二叉樹
18.10 tsearch函數:搜索二叉樹
18.11 twalk函數:遍歷二叉樹
第19章 其他函數
19.1 getopt函數:分析命令參數
19.2 isatty函數:判斷文件描述符是否為終端
19.3 pselect函數:多路轉接I/O
19.4 select函數:多路I/O轉接
19.5 ttyname函數:返回終端機的名稱
附錄A Linux函數的首字母索引
附錄B Linux指令的首字母索引

F. 請教一個關於linux消息隊列的問題

一般使用步驟:

1. 用ftok產生一個key。

2. 調用msgget(使用key作為參數)產生一個隊列

3. 進程可以用msgsnd發送消息到這個隊列,相應的別的進程用msgrcv讀取。

這里需要注意msgsnd可能會失敗的兩個情況:

a) 可能被中斷打斷(包括msgsnd和msgrcv). 尤其是大流量應用中更容易出現. 比較安全的用法是判斷操作是否被中斷打斷,如果被打斷, 則需要繼續嘗試。

b) 消息隊列滿。產生這個錯誤,則需要考慮提高系統消息隊列規格,或者查看消息接收處是否有問題

4. msgctl函數可以用來刪除消息隊列
消息隊列產生之後,除非明確的刪除(可以用),產生的隊列會一直保留在系統中。linux下消息隊列的個數是有限的,注意不要泄露。如果 使用已經達到上限,msgget調用會失敗,產生的錯誤碼對應的提示信息為no space left on device.

注意點:

1.消息的類型 mtype 不需為非0值。如果使用0,則msgsnd會失敗,並得到」Invalid argument「錯誤。

2.msgflg為0表示阻塞等待,如果msgflg為IPC_NOWAIT表示非阻塞。

3.最好使用root許可權執行消息隊列,否則msgrcv 提示 "Permission denied"。

G. close的Linux 中的close函數

頭文件:
#include <unistd.h>
int close(int fd);
返回值:成功返回0,出錯返回-1並設置errno
參數fd是要關閉的文件描述符。需要說明的是,當一個進程終止時,內核對該進程所有尚未關閉的文件描述符
調用close關閉,所以即使用戶程序不調用close,在終止時內核也會自動關閉它打開的所有文件。但是對於一
個長年累月運行的程序(比如網路伺服器),打開的文件描述符一定要記得關閉,否則隨著打開的文件越來越
多,會佔用大量文件描述符和系統資源。
應用於 Visual Basic 的 Close 語句
Close 語句:關閉Open語句所打開的輸入/輸出 (I/O) 文件。
語法
Close[filenumberlist]
可選的filenumberlist參數為一個或多個文件號,其中filenumber為任何有效的文件號,語法如下:
[[#]filenumber] [,[#]filenumber]. . .
說明
若省略filenumberlist,則將關閉Open語句打開的所有活動文件。
當關閉Output或Append打開的文件時,將屬於此文件的最終輸出緩沖區寫入操作系統緩沖區。所有與該文件相關聯的緩沖區空間都被釋放。
在執行Close語句時,文件與其文件號之間的關聯將終結。

熱點內容
閃迪加密器 發布:2024-11-26 07:44:08 瀏覽:552
我的世界伺服器顯示村民名字 發布:2024-11-26 07:37:16 瀏覽:478
php注冊與登錄 發布:2024-11-26 07:31:21 瀏覽:795
基金賬戶如何配置 發布:2024-11-26 07:29:58 瀏覽:180
用電腦怎麼刷汽車行車電腦配置 發布:2024-11-26 07:24:14 瀏覽:688
客戶端ip和伺服器ip地址怎麼設置 發布:2024-11-26 07:18:25 瀏覽:684
如何破解加密的wmv 發布:2024-11-26 07:18:16 瀏覽:895
資源碼項目 發布:2024-11-26 07:10:12 瀏覽:892
acl配置第三步如何驗證 發布:2024-11-26 07:07:58 瀏覽:939
上傳gif搜索 發布:2024-11-26 06:27:05 瀏覽:763