第四章 Linux環境

2021-07-24 00:16:02 字數 2633 閱讀 7996

程式引數

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

#includeint

getopt(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(const

char *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$ ./time

current

time is 1476760726;

#include#include

uid_t getuid(

void

);char *getlogin(void);

getuid返回程式關聯的uid,一般為當前使用者的uid。

getlogin返回當前使用者的登入名。

#include#include

struct 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 ...