clamd伺服器 學習筆記

2021-06-02 06:39:31 字數 1419 閱讀 8149

實現病毒掃瞄功能的後台程序,它使用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....