原创 GUN make (10) make的約定

1. 基本約定 1.1 所有的makefile中應該包含: SHELL = /bin/sh 目的是爲了避免變量SHELL在有些系統上可能繼承同名的系統環境變量而導致錯誤。   1.2 不同make可識別後綴和隱含規則可能不同,需要明確限定

原创 UN make (6) makefile的條件執行

條件判斷的基本語法: CONDITIONAL-DIRECTIVE TEXT-IF-TRUE else TEXT-IF-FALSE endif 其中,CONDITIONAL-DIRECTIVE爲判斷條件判斷語句: 判斷是否相等: ife

原创 GUN make (5) makefile中的變量

makefile中的變量具有以下特徵: makefile中變量和函數的展開是在make讀取Makefile文件時進行的。 變量名不包括 : # = 前置空白 尾空白 的任何字符串。 變量名大小寫敏感。   1.變量的引用 變量引用的展開方

原创 GUN make (4) 規則的命令

規則的命令是由一些shell命令行組成,被一條一條執行。 通常系統中存在不同的shell,但在make處理Makefile過程中,如果沒有明確指定,那麼對所有規則中的命令行解析使用 “/bin/sh” 完成。   1.  命令回顯 回顯是

原创 GUN make (2) 總述

1.makefile文件的命名 默認情況下,make會在工作目錄下按照文件順序尋找makefile文件並執行: GUNmakefile,makefile,Makefile   如果make程序在工作目錄下無法找到三個文件中的任何一個,它將

原创 GUN make (1) 簡介

1. GNU make 介紹 make通過比較對應的文件的最後修改時間,來決定哪些文件需要更新,哪些文件不需要更新。   當使用make工具進行編譯時,工程中以下幾種文件在執行make時會被編譯: 所有的源文件沒有被編譯過,則對各個C源文

原创 recvmsg & sendmsg

我們可以把read,readv, recv, recvfrom 調用替換爲recvmsg,各類輸出函數調用也可以替換爲sendmsg。   函數原型: ssize_t recvmsg(int sockfd, struct msghdr

原创 UNIX網絡編程套接字 -- poll

poll 函數和 select 函數功能類似,但是poll沒有最大描述符個數限制。   1.函數定義: int poll(struct pollfd *fds, nfds_t nfds, int timeout);   參數: fds:

原创 UNIX網絡編程套接字 -- select

select函數允許進程指示內核等待多個事件中的任何一個發生,並且在有一個或多個事件發生或經歷一段指定時間後才喚醒。   1.函數原型: int select (int maxfd + 1,fd_set *readset,fd_set *

原创 計算機網絡 -- 運輸層(2)TCP可靠性傳輸實現

因特網的網絡層服務(IP服務)是不可靠的,IP不保證數據報的交付,不保證數據報中完整性。 TCP在IP不可靠的盡力而爲服務至上創建一種可靠數據傳輸服務。 1.累計確認 TCP採用累計確認,ACK y 表示字節編號在y之前的所有字節都已經收

原创 ISS mempool實現

點擊放大圖片  

原创 inet_aton , inet_addr , inet_ntoa

首先了解下結構體struct in_addr: struct in_addr{ in_addr_t   s_addr; //in_addr_t 表示 unsigned int }   1.把ip地址轉化爲用於網絡傳輸的二進制

原创 ISS TFTP socket 編程學習

以下根據 ISS code TFTP 模塊中總結出SOCKET編程,點擊圖片可以清晰放大。 

原创 gethostbyname & gethostbyaddr

1. gethostbyname 使用gethostbyname獲取主機信息,返回一個指向hostent結構的指針,其中包含有所查找主機的 所有  ipv4地址。其侷限性在於只能返回ipv4的地址。   函數定義:   函數使用:

原创 SSH (Secure Shell)

1. SSH簡介 SSH 是 Secure Shell(安全外殼)的簡稱。 用戶通過一個不能保證安全的網絡環境 遠程登錄到設備時,SSH 可以利用加密和強大的認證功能提供安全保障,保護設備 不受諸如 IP 地址欺詐、明文密碼截取等攻擊。