linux 網路程式設計(1) 開發基礎

2021-09-27 03:38:50 字數 1930 閱讀 9206

《linux網路程式設計》:宋敬彬  海信工程師。

目錄

一 . linux os

1.5 os 架構

二 code環境 

2.2 gcc

2.3 makefile

2.4 gdb

三 檔案系統

3.1 分類

四 程式程序執行緒

4.1.基本概念

4.2 process 產生

4.3 多個 process的通訊

gcc是: gnu compiler collection

*.c   c語言原始檔

*.c / *.cc / *.cxx c++ 原始檔

*.s 彙編原始檔

*.o 彙編目標檔案

*.a 靜態庫

*.so 共享庫

a.out 鏈結後的輸出檔案

目標檔案是cpu 可識別的二級制檔案。

可執行檔案是目標檔案和庫鏈結後的檔案。

//-c 編譯成目標檔案  -o 重新命名

gcc hello.c //預設生成可執行 a.out

gcc -c -o hi.o hi.c //重新命名為目標檔案hi.o

gcc -o test string .c hello.c //兩個原始檔編譯成test可執行

靜態庫的優勢:1. 編譯一次,作為obj檔案到處使用。

2. 不用開放源**,只提供bin檔案。

gcc -o test main.c libstr.a  //使用靜態庫

gcc -o test main.c -l./-lstr //編譯&鏈結庫(如有同名動態庫優先)

檔案數量少用gcc.大工程用makefile。

windows下的nmake 和make 類似,但是由於vs的強大被掩蓋。

所有平台的makefile都是類似的,核心規則(target + dependence+ command 基本一致,不同的是第三方函式api。

gdb: gnu debuger

gcc -o hello hello.c -g

-g 表示用gdb除錯

檔案系統描述: 索引節點(inode) + 塊(block)

block 儲存資料, inode儲存資料的資訊。

檢視乙個檔案的inode

ls -li hello.c
vfs 是linux 核心層實現的一種架構,對各種型別的檔案都進行了抽象。

process 是os資源分配的基本單位,thread 是共享process資源的基本單位。

建立:pthread_create()

結束函式:pthread_join()  和 pthread_exit()

網路程式設計基礎(1)

四個基礎類 1.dns類,2.ipaddress類,3.ipendpoint類,4.webclient類 1.dns類是乙個靜態類,它從internet網域名稱系統 dns 檢索關於特定主機的資訊。設計介面,然後是確定按鈕的 如下 using system using system.collecti...

網路程式設計 基礎1

使用語言 c語言 伺服器端的建立 server.c 建立套接字 socket 函式 函式原型 引數說明 繫結套接字 bind 函式 引數說明 建立監聽佇列 listen 函式 函式原型 引數說明 接收連線請求 accept 函式 函式原型 int main 給套接字繫結位址 需要用結構體來表示位址資...

Linux網路程式設計 基礎知識(1)

linux網路程式設計 基礎知識 1 1.linux網路知識介紹 1.1 客戶端程式和服務端程式 網路程式和普通的程式有乙個最大的區別是網路程式是由兩個部分組成的 客戶端和伺服器端.網路程式是先有伺服器程式啟動,等待客戶端的程式執行並建立連線.一般的來說是服務端的程式 在乙個埠上監聽,直到有乙個客戶...