• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    memcached源碼閱讀之庫函數(shù)介紹

    來源:懂視網(wǎng) 責編:小采 時間:2020-11-09 12:59:15
    文檔

    memcached源碼閱讀之庫函數(shù)介紹

    memcached源碼閱讀之庫函數(shù)介紹:前言 最近下載了 memcached 源碼,準備研究研究。 但是下載后發(fā)現(xiàn)里面有很多庫函數(shù)自己沒見過,于是把這些函數(shù)收集起來。 后來發(fā)現(xiàn)我知道的一些函數(shù)讀者可能還不知道,于是把不常見的函數(shù)都記錄下來吧。 這些函數(shù)都是看 man 的英文手冊學(xué)習(xí)的,所以可能講解
    推薦度:
    導(dǎo)讀memcached源碼閱讀之庫函數(shù)介紹:前言 最近下載了 memcached 源碼,準備研究研究。 但是下載后發(fā)現(xiàn)里面有很多庫函數(shù)自己沒見過,于是把這些函數(shù)收集起來。 后來發(fā)現(xiàn)我知道的一些函數(shù)讀者可能還不知道,于是把不常見的函數(shù)都記錄下來吧。 這些函數(shù)都是看 man 的英文手冊學(xué)習(xí)的,所以可能講解

    前言 最近下載了 memcached 源碼,準備研究研究。 但是下載后發(fā)現(xiàn)里面有很多庫函數(shù)自己沒見過,于是把這些函數(shù)收集起來。 后來發(fā)現(xiàn)我知道的一些函數(shù)讀者可能還不知道,于是把不常見的函數(shù)都記錄下來吧。 這些函數(shù)都是看 man 的英文手冊學(xué)習(xí)的,所以可能講解

    前言

    最近下載了 memcached 源碼,準備研究研究。
    但是下載后發(fā)現(xiàn)里面有很多庫函數(shù)自己沒見過,于是把這些函數(shù)收集起來。
    后來發(fā)現(xiàn)我知道的一些函數(shù)讀者可能還不知道,于是把不常見的函數(shù)都記錄下來吧。
    這些函數(shù)都是看 man 的英文手冊學(xué)習(xí)的,所以可能講解的非常淺,如果想深入學(xué)習(xí),可以詢問我或者自行 google 查資料了解。

    想看原理的直接轉(zhuǎn)向 memcached 源碼閱讀之原理篇

    assert

    函數(shù)的含義

    abort the program if assertion is false
    判斷一個值是否是 false, 如果是false 就退出。

    這個函數(shù)主要用于程序員做測試。
    對于某個變量應(yīng)該為某個值的時候,為了確保那個變量確實在是那個值,可以用 assert 來擔保。
    如果那個變量出現(xiàn)意外不是規(guī)定的值,程序?qū)娭仆顺觯?/script>輸出錯誤信息,格式如下

    當程序正式使用時,就要關(guān)閉 assert 這個功能。
    當然,我們不會去一個一個的注釋。
    我們可以定義一個宏 NDEBUG, 定義之后 assert 就會無效的。

    頭文件與聲明

    #include 
    void assert(scalar expression);
    //source
    assert(argc > 2);
    //error message
    a.out: timedrun.c:94: int main(int, char**): Assertion `argc > 2' failed.
    Aborted
    

    alarm

    函數(shù)的含義

    set an alarm clock for delivery of a signal
    設(shè)置一個定時發(fā)送信號的 alarm

    這個函數(shù)主要用于那些需要信號量的程序中。
    alarm 實際上就是一個超時限制。
    alarm 只能設(shè)置一個,后面的會覆蓋前面的。

    頭文件與聲明

    #include 
    unsigned int alarm(unsigned int seconds);
    

    fork

    函數(shù)的含義

    create a child process
    創(chuàng)建一個子進程

    創(chuàng)建一個子進程,這個子進程的內(nèi)存空間和父進程一樣。
    但是這個子進程和父進程還是有一些區(qū)別的,這里不多介紹。

    如果 fork 成功,子進程的 PID 會返回給父進程,而在子進程中返回的是0.
    如果返回 -1, 代表子進程創(chuàng)建失敗。

    頭文件與聲明

    #include 
    pid_t fork(void);
    

    perror

    函數(shù)的含義

    print a system error message

    向標準錯誤 輸出一條信息。
    可以簡單的理解為輸出一條信息。

    頭文件與聲明

    #include 
    void perror(const char *s);
    #include 
    const char *sys_errlist[];
    int sys_nerr;
    int errno;
    

    execvp

    函數(shù)的含義

    execute a file
    執(zhí)行一個文件
    就是調(diào)用另一個可執(zhí)行程序。

    頭文件與聲明

    #include 
    extern char **environ;
    int execl(const char *path, const char *arg, ...);
    int execlp(const char *file, const char *arg, ...);
    int execle(const char *path, const char *arg,
     ..., char * const envp[]);
    int execv(const char *path, char *const argv[]);
    int execvp(const char *file, char *const argv[]);
    

    sigaction

    函數(shù)的含義

    examine and change a signal action
    檢查和修改信號 action

    頭文件與聲明

    #include 
    int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
    

    waitpid

    函數(shù)的含義

    wait for process to change state
    等待進程去修改狀態(tài) 簡單的說就是等待子進程的信號。
    成功了就返回修改修改狀態(tài)的那個子進程的 PID.
    如果狀態(tài)沒有修改,返回0,錯誤返回 -1.

    WIFEXITED(status) 這個宏用來指出子進程是否為正常退出的,如果是,它會返回一個非零值。
    WEXITSTATUS(status) 當WIFEXITED返回非零值時,我們可以用這個宏來提取子進程的返回值.
    WIFSIGNALED(status) WTERMSIG(status) 當 WIFSIGNALED 返回非零值時,這個宏會導(dǎo)致子進程結(jié)束的信號數(shù)

    頭文件與聲明

    #include 
    #include 
    pid_t wait(int *status);
    pid_t waitpid(pid_t pid, int *status, int options);
    int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);
    

    signal

    函數(shù)的含義

    ANSI C signal handling
    ANSI C 信號
    設(shè)置一個信號的回調(diào)函數(shù)。
    當接受到指定信號時,執(zhí)行 handler 函數(shù)。

    頭文件與聲明

    #include 
    typedef void (*sighandler_t)(int);
    sighandler_t signal(int signum, sighandler_t handler);
    

    kill

    函數(shù)的含義

    send signal to a process
    給一個進程發(fā)送信號

    頭文件與聲明

    #include 
    #include 
    int kill(pid_t pid, int sig);
    

    getrlimit setrlimit

    函數(shù)的含義

    get/set resource limits
    得到最大的資源限制

    頭文件與聲明

    #include 
    #include 
    int getrlimit(int resource, struct rlimit *rlim);
    int setrlimit(int resource, const struct rlimit *rlim);
    

    getuid

    函數(shù)的含義

    get user identity
    得到用戶的身份ID

    頭文件與聲明

    #include 
    #include 
    uid_t getuid(void);
    uid_t geteuid(void);
    

    getpwnam

    函數(shù)的含義

    get password file entry 得到密碼文件實體

    頭文件與聲明

    #include 
    #include 
    struct passwd *getpwnam(const char *name);
    struct passwd *getpwuid(uid_t uid);
    int getpwnam_r(const char *name, struct passwd *pwd, char *buf, size_t buflen, struct passwd **result);
    int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf, size_t buflen, struct passwd **result);
    

    setgid

    函數(shù)的含義

    set group identity 設(shè)置用戶組的ID

    頭文件與聲明

    #include 
    #include 
    int setgid(gid_t gid);
    

    setuid

    函數(shù)的含義

    set user identity 設(shè)置用戶的ID

    頭文件與聲明

    #include 
    #include 
    int setuid(uid_t uid);
    

    sigemptyset

    函數(shù)的含義

    POSIX signal set operations.

    頭文件與聲明

    #include 
    int sigemptyset(sigset_t *set);
    int sigfillset(sigset_t *set);
    int sigaddset(sigset_t *set, int signum);
    int sigdelset(sigset_t *set, int signum);
    int sigismember(const sigset_t *set, int signum);
    

    setsid

    函數(shù)的含義

    creates a session and sets the process group ID

    頭文件與聲明

    #include 
    pid_t setsid(void);
    

    dup2

    函數(shù)的含義

    duplicate a file descriptor

    頭文件與聲明

    #include 
    int dup(int oldfd);
    int dup2(int oldfd, int newfd);
    #define _GNU_SOURCE
    #include 
    int dup3(int oldfd, int newfd, int flags);
    

    mlockall

    函數(shù)的含義

    lock and unlock memory

    頭文件與聲明

    #include 
    int mlock(const void *addr, size_t len);
    int munlock(const void *addr, size_t len);
    int mlockall(int flags);
    int munlockall(void);
    

    getenv

    函數(shù)的含義

    get an environment variable

    頭文件與聲明

    #include 
    char *getenv(const char *name);
    

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    memcached源碼閱讀之庫函數(shù)介紹

    memcached源碼閱讀之庫函數(shù)介紹:前言 最近下載了 memcached 源碼,準備研究研究。 但是下載后發(fā)現(xiàn)里面有很多庫函數(shù)自己沒見過,于是把這些函數(shù)收集起來。 后來發(fā)現(xiàn)我知道的一些函數(shù)讀者可能還不知道,于是把不常見的函數(shù)都記錄下來吧。 這些函數(shù)都是看 man 的英文手冊學(xué)習(xí)的,所以可能講解
    推薦度:
    標簽: 閱讀 介紹 最近
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 精品无码一区在线观看| 午夜精品久久久久久99热| 精品亚洲麻豆1区2区3区| 欧美日激情日韩精品| 精品亚洲aⅴ在线观看| 老司机精品影院91| 日本久久久精品中文字幕| 87国产私拍福利精品视频| 久久久无码人妻精品无码| 国产精品天天影视久久综合网 | 久久99精品国产一区二区三区| 青青草97国产精品免费观看| 国产精品成人久久久久三级午夜电影| 97热久久免费频精品99| 久久99精品久久只有精品| 亚洲综合欧美精品一区二区| 精品久久国产一区二区三区香蕉| 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 国产精品亚洲专区无码WEB | 国产伦精品一区二区三区女| 精品麻豆丝袜高跟鞋AV| 欧美精品久久久久久久自慰| 亚洲视频在线精品| 亚洲精品综合久久| 午夜精品久久影院蜜桃| 久久国产精品一区| 久久se精品一区二区影院| 精品欧美| 久久伊人精品青青草原日本 | 欧美精品一区二区精品久久| 久久99精品国产| 精品国产亚洲一区二区三区| 九九热这里只有在线精品视| 久久这里只有精品首页| 777欧美午夜精品影院| 国产精品99在线播放| 国产精品狼人久久久久影院| 国产精品国产三级在线高清观看 | 亚洲精品私拍国产福利在线| 热re99久久精品国产99热| 一区二区三区精品国产欧美|