Linux環境-程序參數&環境變量&時間和日期


main函數原型

int main(int argc, char *argv)

參數由上一級的程序調用傳入,一般是shell,注意,Linux的shell一般會在設置argc和argv之前對文件名參數進行通配符拓展,而MS-DOS的shell則希望程序接受帶通配符的參數,並執行自己的通配符。

通配符只有*,?,[],{}這4種

來自 <https://blog.csdn.net/youmatterhsp/article/details/80528761>

   

argv[]數組,程序名也作為參數,argv[0]就是程序名

命令行參數約定

0.所有的命令行都應該以一個短橫線(-)開始,其后包含單個字母或數字

1.不帶后續參數的選項可以下一個短橫線后歸並到一起,如 ls -lstr

2.如果某個選項需要參數,則參數應該緊跟在該選項之后

   

X/Open規范,提供了解析命令行選項的標准用法 getopt()函數

1 #include <unistd.h>
2 
3 int getopt(int argc,char *const argv[],const char *optstring);
4 extern char* optarg;
5 extern int optint,opterr,optopt;

 

P117有使用getopt()函數的例程.

getopt_long()函數可以處理非單個字符的 含義更明確的參數 接受以 -- 開頭的長參數

 

環境變量&時間和日期

20191023

12:07

用來控制shell腳本與其他程序行為的變量,可以使用他們來配置用戶環境。

標准環境變量包括終端類型、默認的編輯器、時區等

C語言可以通過putenv()getenv()函數來訪問環境變量

1 #include <stdlib.h>
2 
3 char *getenv(const char *name);
4 int putenv(const char *string);

環境由一組格式為"名字-值"的字符串組成,getenv函數以給定的名字搜索環境中的一個字符串,並返回該名字相關的值。 請求變量不存在or無關聯值 返回null

設置環境僅對程序本身有效,不會反映到外部環境中,這是因為變量的值不會從子進程傳遞到父進程(shell)

程序可以通過environ變量直接訪問這個字符串數組獲得當前的環境變量

 

時間和日期

所有的UNIX系統都使用同一個時間和日期的起點,即格林尼治時間1970年1月1日0點,其他所有的時間均是以那時經過的秒數來衡量。

時間通過一個預定義的time_t來處理,定義在time.h頭文件中'

1 #include<time.h>
2 time_t time(time_t *tloc);

測算某些事情的持續時間,可以調用difftime()函數,返回值為一個double類型的數據

double difftime(time_t time1,time_t time2);

將時間分解為一個結構,返回世界標准時間

返回當地時間,需要使用 struct tm *localtime(const time_t *timeval);函數

將tm結構轉換成原始數據,使用mktime()函數

使用asctime()函數,返回日期字符串。ctime()函數用於讀取當地時間,返回字符串 相當於 asctime(loacltime(timeval))

strftime()格式化輸出時間函數

   

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM