0%

PPPOE

  • Point-to-Point Protocol over Ethernet
  • 是將對等協定(PPP)封裝在乙太網路(Ethernet)框架中的一種網路隧道協定
  • 由於協定中整合PPP協定,所以實現出傳統乙太網路不能提供的身分驗證、加密以及壓縮等功能,也可用於纜線數據機(cable modem)和數位使用者線路(DSL)等以乙太網路協定向使用者提供接入服務的協定體系
  • 本質上,它是一個允許在乙太網路廣播域中的兩個乙太網路介面間建立對等隧道的協定。
    閱讀全文 »

Access Control List (ACL)

  • ACL 是 Access Control List 的縮寫,主要的目的是在提供傳統的 owner,group,others 的 read,write,execute 權限之外的細部權限設定。
  • ACL 可以針對單一使用者,單一檔案或目錄來進行 r,w,x 的權限規範,對於需要特殊權限的使用狀況非常有幫助。
    閱讀全文 »

C/C++ define

define concatenate string

  • in the C language, separating two strings with space as in “s” “1” is exactly equivalent to having a single string “s1”.
    Remember, only literal strings will do this. This does not work for variables.
閱讀全文 »

C/C++ f 系列

fopen

fgetc

  • #include <stdio.h>
1
2
3
4
5
6
int fgetc(FILE *stream);
char *fgets(char *s, int size, FILE *stream);
int getc(FILE *stream);
int getchar(void);
char *gets(char *s);
int ungetc(int c, FILE *stream);
閱讀全文 »

C/C++ Lambda Function

  • since C++11

syntax

  • [ captures ] ( params ) lambda-specifiers requires(optional) { body }
    • capture 子句 (也稱為 c + + 規格中的 lambda introducer 。 )
    • 參數清單 (選)。 (也稱為 lambda 宣告子)
    • 可變規格 (選)。
    • 例外狀況規格 (選)。
    • 尾端-傳回類型 (選)。
    • lambda 主體。
      閱讀全文 »

Tips on Google Search

tips

Use quotations to search for the exact order

  • When searching for something specific, try using quotes to minimize the guesswork for Google search
  • exactly match
  • e.g.
    • Puppy Dog Sweaters
    • “Puppy Dog Sweaters”

      Use a hyphen to exclude words

  • 使用減號去除某些特定詞彙
  • e.g.

C/C++ malloc, calloc, realloc

  • stdlib.h
  • 變數建立後會配置記憶體空間,這類資源是配置在記憶體的堆疊區(Stack),生命週期侷限於函式執行期間,也就是函式執行過後,配置的空間就會自動清除。
  • 資源之間的互用關係錯綜複雜,有些資源「無法預期」被使用的生命週期,因為無法預期,也就有賴於開發者自行管理記憶體資源,也就是開發者得自行在需要的時候配置記憶體,這些記憶體會被配置在堆積區(Heap),不會自動清除,開發者得在不使用資源時自行釋放記憶體。
    閱讀全文 »

C/C++ constexpr

introduction

  • 是 C++11 對於我們已經熟到透的 const 修飾子的一個加強

    • const 代表的是被修飾的變數數值編譯期 (compile-time) 已定,也無法再通過語法修改
    • 但是這種狀況就沒辦法
      1
      2
      3
      4
      5
      6
      int sq(int N) {
      return N * N;
      }
      const int N = 123;
      const int SQ_N = sq(N);
      printf("%d %d\n", N, SQ_N);
      • 他能算出個值初始化 SQ_N,但是卻是發生在運行期而不是編譯期
        閱讀全文 »

File Open 系列

open

  • #include <fcntl.h>
  • open, openat, creat - open and possibly create a file
    1
    2
    int open(const char *pathname, int flags);
    int open(const char *pathname, int flags, mode_t mode);
    閱讀全文 »

C/C++ dup

  • dup() 和 dup2() 是兩個非常有用的系統調用,都是用來複製一個文件的描述符,使新的文件描述符也標識舊的文件描述符所標識的文件。
  • 鑰匙相當於文件描述符,鎖相當於文件,本來一個鑰匙開一把鎖,相當於,一個文件描述符對應一個文件,現在,我們去配鑰匙,通過舊的鑰匙複製了一把新的鑰匙,這樣的話,舊的鑰匙和新的鑰匙都能開啟這把鎖

    #include <unistd.h>

    閱讀全文 »