2017年2月27日 星期一

Linux 檔案IO: 通用的IO模型

檔案IO:  通用的IO模型

file descriptor:
全部執行IO操作的系統呼叫都是透過file descriptor去存取. 通常是一個非負的整數.每個process都有一組自己的file descriptor

一般process都會有以下三個file descriptor, 他們由繼承shell而來
file descriptor
用途
POSIX name
stdio stream
0
標準輸入
STDIN_FILENO
stdin
1
標準輸出
STDOUT_FILENO
stdout
2
標準錯誤
STDERR_FILENO
stderr

對於檔案呼叫IO操作有四個主要操作
  • open
  • read
  • write
  • close
這四個操作可以對於所有檔案進行IO操作, 包含terminial之類的裝置


2017年2月3日 星期五

Doxygen簡易使用(畫出c struct關係圖)

安裝Doxygen(ubuntu 14.04):
  • # sudo apt-get install doxygen
安裝web server(因為doxygen檔案以html形式呈現):
  • # sudo apt-get install apache2
    # sudo apt-get install graphviz
使用Doxygen:
  1. # sudo doxygen -g DOXYGEN_CONFIG_FILE
  2. # sudo vim DOXYGEN_CONFIG_FILE
  3. # sudo doxygen DOXYGEN_CONFIG_FILE
     
修改DOXYGEN_CONFIG_FILE內容
  • PROJECT_NAME           = "glusterfs"
  • PROJECT_NUMBER         = 3.8.3
  • OUTPUT_DIRECTORY       = /var/www         //產生文件的folder
  • CREATE_SUBDIRS         = YES
  • ALLOW_UNICODE_NAMES    = YES
  • OUTPUT_LANGUAGE        = English
  • FULL_PATH_NAMES        = YES
  • INPUT                  = /root/glusterfs  //source code的folder
  • RECURSIVE              = YES
  • HAVE_DOT               = YES
  • CALL_GRAPH             = YES
  • CALLER_GRAPH           = YES