讀書筆記之:Linux程式設計(第2版)

來源:互聯網
上載者:User
linux程式設計(第2版)
第2章 shell程式設計
1. 在一個指令碼程式裡執行另外一個指令碼程式要比執行一個函數慢的多;執行結果的回傳也更困難;並且可能造成小指令碼過多的現象.
   在linux系統中,/bin/sh命令通常只是一個到實際應用中的shell的連結.它在大部分linux系統上是一個指向/bin/bash的連結.

2. 在一台unix系統上,你永遠可以保證有一個基本的shell.事實上,如果沒有/bin/bash,大部分unix系統根本就不能夠開機引導,更不用說讓使用者登入上機了.
3. 在shell指令碼程式的內部我們可以執行兩大類命令令,即可以在命令提示字元處執行的普通命令和我們前面提到的"內建"命令."內建"命令是在shell內部實現的,不能做為外部程式被調用.大部分命令都是POSIX技術規範的組成部分,並且經常會提供有獨立的對應程式.命令是內部還是外部的一般沒有多大的重要性,只是內部命令執行起來效率更高.
   既然提到了命令再實現的問題,我們需要瞭解一下UNIX怎樣把一個程式用做幾個命令或不同的檔案.用"ls-l"命令查看一下mv,cp和ln命令,我們會發現,他們在許多系統上的實現都是同一個檔案,只不過用ln命令建立錄幾個不同的名字而已.當這個命令被調用的時候,他會先檢查自己的第一個參數---在UNIX下這將是該命令本身的名字,然後再決定將要採取什麼樣的動作.

4. : 冒號命令
  這是一個空命令,它偶爾會被用來簡化邏輯條件,相當於true的一個假名.因為它是內建的,所以它比true啟動並執行更快,但它的可讀性要差了不少.
  : 還可被用來對變數進行條件化設定的情況下,比如
  : ${var:=value}
  如果沒有":",shell會嘗試把$var解釋成一個命令
5. exec命令
  exec有兩種不同的用法(1)它經常被用來以另一個不同的程式替換掉當前的shell
      (2)第二個用法是修改當前檔案的描述符:exec 3 < afile

第3章 如何使用和處理檔案
1. 比較重要的裝置檔案有3個:
  (1)/dev/console裝置
  代表控制台
  (2)/dev/tty
  特殊檔案/dev/tty是進程式控制制終端(鍵盤和顯示屏,或者鍵盤和視窗)的一個假名(邏輯裝置)
  需要提醒大家的是,/dev/console裝置只有一個,但是通過/dev/tty能夠訪問的物理裝置卻可以很多
  (3)/dev/null
  空(null)裝置
2. 檔案流與檔案描述符的關係
  每個檔案流都和一個底層檔案描述符相關聯著.我們可以把底層的輸入輸出操作和高層的檔案流操作混在一起,但一般來說這並不是明智的方法,因為它會使資料緩衝的後果難以預料.
  #include <stdio.h>
  int fileno(FILE*stream);
  FILE*fdopen(int fileno,const char*mode);
3. 檔案與子目錄的維護
  int chmod(const char *path,mode_t mode);
  int chown(const char *path,uid_t owner,gid_t group);

  int mkdir(const char *path,mode_t mode);
  int rmdir(const char *path);

  int chdir(const char *path);//cd 命令
  int *getcwd(char *buf,size_t size);

(待續)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.