第七節linux c基本應用

 

1.字符串操作
   1.字符測試
     1.測試是否爲英文字母
       #include<ctype.h>
       int isalpha(int c)
     2.測試字符是否爲數字
       int isdigit(int c)
   2.字符串初始化
     memset
     將字符串的前n個字節清零,也可以使用bzero函數
     
   3.字符串複製
     1.strcpy
     2.char *strdup(char *s);
     3.void *memcpy(void *dest, void *src, unsigned int count);
     4.memmove函數 與memcpy用法一樣
     
   4.字符串比較
     比較的函數主要有strcmp,strncmp,
     strcasecmp,strncasecmp不區分大小寫
     以及memcmp等。

   5.字符/字符串查找
     字符字符串查找的函數主要有index、rindex(從後向前查找)、strchr、strrchr以及strstr等
  
   6.字符串鏈接與分割
     實現函數爲::
     strcat、strncat和strtok(分割函數)
     
2.數據交換
   1.字母大小寫轉換
   大寫轉小寫
   toupper
   小寫轉大寫
   tolower
   
   2.字符串轉換
   實現字符串與整數、浮點數之間轉換的函數有atoi、atol、atof、strtol、strtod以及gcvt(浮點轉換字符串)

3.內存分配與釋放
   1.內存空間的分配
     alloca、calloc、malloc函數都是用來動態分配內存空間。
     
   2.內存空間的釋放
     釋放原先分配的內存空間使用free函數。
     
   3.更改已分配的內存空間
     realloc函數用來更改已分配的內存空間,可以變大,或縮小。
     

4.時間和日期

   1.時間和日期的獲取
       1.time函數
       說明:
     此函數會返回從公元1970年1月1日的UTC時間從0時0分0秒算起到現在所經過的秒數。
     如果t並非空指針的話, 此函數也會將返回值存到t指針所指的內存。

     2.gettimeofday函數
       取得目前的時間

   2.時間和日期的顯示
     1.ctime函數
     轉換爲常用的時間格式
     
     2.gmtime函數
     該函數的功能與ctime函數類似,但轉換結果以tm結構返回。
     
     3.asctime函數
     該函數的功能與ctime函數類似,轉換結果也是以字符串形式返回,但它的輸入參數爲tm結構。
     
   3.時間的計算
     difftime函數可以計算兩個時刻之間的時間差, 返回結果爲秒。
     
     
    還有其他如gettimeofday獲取精確時間。
   
5.其他應用
  1.命令行參數
   main函數不能被其他函數調用,所以他的參數值從操作系統命令行獲取,有兩個參數argc和argv,其中argc是整形變量,argv爲指向字符串
   的指針數組,用來存儲命令行輸入的所有參數。
   
   定義函數
        int getopt(int argc,char * const argv[ ],const char * optstring);
   函數說明
         getopt()用來分析命令行參數。參數argc和argv是由main()傳遞的參數個數和內容。參數optstring 則代表欲處理的選項字符串。
         此函數會返回在argv 中下一個的選項字母,此字母會對應參數optstring 中的字母。如果選項字符串裏的字母后接着冒號“:”,
         則表示還有相關的參數,全域變量optarg 即會指向此額外參數。如果getopt()找不到符合的參數則會印出錯信息,並將全域變量
         optopt設爲“?”字符,如果不希望getopt()印出錯信息,則只要將全域變量opterr設爲0即可。
 
   短參數的定義
        getopt()使用optstring所指的字串作爲短參數列表,象"1ac:d::"就是一個短參數列表。短參數的定義是一個'-'後面跟一個字母或數字,
        象-a, -b就是一個短參數。每個數字或字母定義一個參數。
   其中短參數在getopt定義裏分爲三種:
   1. 不帶值的參數,它的定義即是參數本身。
   2. 必須帶值的參數,它的定義是在參數本身後面再加一個冒號。
   3. 可選值的參數,它的定義是在參數本身後面加兩個冒號 。
   在這裏拿上面的"1ac:d::"作爲樣例進行說明,其中的1,a就是不帶值的參數,c是必須帶值的參數,d是可選值的參數。
   在實際調用中,'-1 -a -c cvalue -d', '-1 -a -c cvalue -ddvalue', '-1a -ddvalue -c cvalue'都是合法的。這裏需要注意三點:
   1. 不帶值的參數可以連寫,象1和a是不帶值的參數,它們可以-1 -a分開寫,也可以-1a或-a1連寫。
   2. 參數不分先後順序,'-1a -c cvalue -ddvalue'和'-d -c cvalue -a1'的解析結果是一樣的。
   3. 要注意可選值的參數的值與參數之間不能有空格,必須寫成-ddvalue這樣的格式,如果寫成-d dvalue這樣的格式就會解析錯誤。

   返回值
      getopt()每次調用會逐次返回命令行傳入的參數。
      當沒有參數的最後的一次調用時,getopt()將返回-1。
       當解析到一個不在optstring裏面的參數,或者一個必選值參數不帶值時,返回'?'。
      當optstring是以':'開頭時,缺值參數的情況下會返回':',而不是'?' 。

  2.用戶和用戶組操作
    1.getuid函數
      獲取當前用戶進程的標示符

    2.getgid函數
      用來獲取當前組的標示符
      
    3.getlogin函數
      用來獲取當前用戶的賬戶名稱
      
    4.getpwent函數
      linux系統中,文件/etc/passwd中包含了所有的用戶賬號信息,該文件可以使用getpwent函數來讀取,該函數每次從文件中讀取
      一項用戶數據,讀取完畢後使用endpwent函數將文件關閉。
      
    5.getpwnam函數
      該函數用來讀取指定的用戶信息
      
    6.getutent函數
      linux系統中,文件var/run/utmp中記錄着當前登錄用戶的信息
      讀取完成後使用endutent函數將文件關閉。
      
  3.環境變量操作
    環境變量是包含系統環境信息的字符串,可以作用於用戶的整個工作空間。
    1.getenv函數
      用來獲取環境變量
      
    2.putenv函數
      用來更改或增加環境變量
      
    3.setenv函數
      用來更改或增加環境變量
      
      
      
    

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章