實現病毒掃瞄功能的後台程序,它使用socket通訊、訊號同步、執行緒池、後台程序等典型技術。
標準c庫提供了對命令列引數進行分析的函式:
#include
int getopt(int argc, char *const argv[ ] , const char *optstring);//argc和argv[ ]是main函式的引數,optstring表示分析選項的方法
extern char *optarg;//用來存放選項值
extern int optind , opterr , optopt;
#define _gnu_source
#include
int getopt_long(int argc, char * const argv[ ], const char *optstring , const struct option *longopts, int *longindex);//longopts為使用者定義的選項陣列
int getopt_long_only(int argc, char * const argv[ ], const char *optstring , const struct option *longopts, int *longindex);//longindex為命令列選項的序號
struct option//結構option描述了命令列乙個引數選項的構成
const char *name; //長引數選項名
int has_arg; //選項值個數:0,1,2,其中2表示值可有可無
int *flag; //flag為null,則getopt_long返回val,否則返回0
int val; //指明返回值,短引數名
在clamd/option.c中的函式main解析了命令列的各種選項,呼叫上述c庫函式getopt_long依次分析出每個命令列選項,並將每個命令列選項及值儲存在鍊錶中,並提供了對這個鍊錶的操作函式,如:建立鍊錶、釋放鍊錶、讀取鍊錶成員、加入鍊錶成員等。鍊錶定義如下:
struct optnode{ //鍊錶結點結構
char optchar; //短選項名
char *optchar; //選項值,來自於c庫函式getopt_long解析並存在全域性變數optarg中的選項值
char *optname; //長選項名
struct optnode *next; //下乙個節點,當為最後乙個時,指向null
struct optstruct{
struct optnode *optlist; //命令列選項鍊表
char *filename;
時間伺服器學習筆記
時間伺服器主要工作在區域網中,它接收來自衛星導航系統 gps glonass galileo 北斗 的標準時間,然後在區域網中,使用ntp ptpv2 ieee1588協議將時間直接傳送到連入網路的端中,實現同步校對,讓整個個區域網中的客戶端 最多10萬個 能夠統一時間。可以把一台裝有ntp協議的伺...
Kestrel Web 伺服器學習筆記
前言 asp.net core 已經不是啥新鮮的東西,很多新啟的專案都會首選 core 做開發 而 kestrel 可以說是微軟推出的唯一真正實現跨平台的 web 伺服器了 kestrel 利用乙個名為 kestrelengine 的網路引擎實現對請求的監聽 接收和響應 ketrel 之所以具有跨平...
伺服器筆記
將資料夾放到伺服器上 scp r local folder remote username remote ip remote folder 或者 scp r local folder remote ip remote folder 在本地目錄下,scp r local folder root 47....