程式引數
int main(int argc , char *argv)
argc是程式引數的個數,argv是代表引數的字串陣列。
以下對引數檢查:
#include#include
int main(int argc,char *argv)
else
}exit(0);
}
帶引數執行
wuchao@:~/linux_program/ch04$ ./args -i -lr 'hi there
' -f abc
argument
0: ./args
option:i
option:lr
argument
3: hi there
option:f
argument
5: abc
getopt
#includeintgetopt(int agrc,char *const argv,const char *optstring)
extern
char *optarg;
extern
int optind,opterr,optopt;
該函式將傳遞給程式的main函式的argc和argv作為引數,同時接收乙個字串optstring,該字串告訴getopt哪些選項可用,以及它們是否有關聯值。
optstring是乙個字元列表,每個字元代表乙個單字元選項,如果字元後面跟乙個冒號,則說明該選項有乙個關聯值作為下乙個引數。
函式解釋:
迴圈呼叫getopt可以依次獲得所有選項
1. 如果選項有乙個關聯值,則外部變數optarg指向這個值
2. 如果選項處理結束,getopt返回-1,特殊引數--將使getopt停止掃瞄選項
3. 若遇到無法識別的選項,getopt返回「?」,並儲存到optopt中
4. 如果選項要求有關聯值,但使用者未提供,getopt返回"?"。如果選項字串第乙個字元為冒號,那麼getopt在使用者為提供值的情況下返回冒號而不是問號。
5. optind儲存待處理引數的索引
以下程式,設選項為『-i』,'-l','-r','-f',其中f選項後面需要乙個引數,並設定未提供引數時,返回「:」
#include#include#include
int main(int argc,char *argv)
}for(;optind)
exit(0);
}
執行
wuchao@:~/linux_program/ch04$ ./argopt -i -lr 'hi here
' -f fred.c -q
option:i
option:l
option:r
filename:fred.c
unknown option:q
argument:hi here
#includechar *getenv(constchar *name);
int putenv(const
char *string);
getenv函式以給定的名字搜尋,返回字串。如果變數不存在,返回null,如果存在但無關聯值,返回空字串。
putenv引數以「名=值」的字串給定。失敗返回-1。
#includetime_t time(time_t *tloc);
如果tloc不是空指標,time還會把返回值寫入tloc。
#include#include#include
#include
intmain()
執行
wuchao@:~/linux_program/ch04$ ./timecurrent
time is 1476760726;
#include#includeuid_t getuid(
void
);char *getlogin(void);
getuid返回程式關聯的uid,一般為當前使用者的uid。
getlogin返回當前使用者的登入名。
#include#includestruct passwd *getpwuid(uid_t uid);
struct passwd *getpwnam(const
char *name);
passwd結構體如下:
char *pw_name:使用者登入名
uid_t pw_uid:uid
gid_t pw_gid:gid
char *pw_dir:使用者家目錄
char *pw_gecos:使用者全名
char *pw_shell:使用者預設shell
#includeint gethostname(char *name,size_t namelen);
把機器的網路名寫入name中,該字串至少有namelen個字元長。
Linux程式設計 第四章Lnux環境 筆記
1 getopt putenv 把字串加到當前環境中 3 程式可以通過 environ直接訪問到系統的環境變數 4 time t time time t tloc 返回從紀元開始至今的秒數 unix紀元的起點在1970年1月1日凌晨0點 struct tm gmtime const time t t...
第四章 繼承
一 為什麼要繼承 在物件導向中我們將具有很多重複內容的類中的內容提取出來,寫成乙個單獨的類 其他類只需要繼承就能取得這些功能,同時可以在自己類中寫入獨特的自定義方法 二 繼承語法 inte ce circle nsobject 繼承是在介面中定義的 冒號後的類名是要整合的類,nsobject 是co...
第四章 物件
三個特性 身份 型別 值 每個物件都有唯一的身份來標識自己,使用內建函式id 得到。例子 usr bin env python coding utf 8 a 32 print a b a print id a id b 結果 d python27 python.exe e workp python ...