環(huán)境變量
環(huán)境由一組格式為“名字=值“的字符串組成
在C語(yǔ)言程序中可以通過(guò)putenv和getenv函數(shù)來(lái)訪問(wèn)和設(shè)置環(huán)境變量,
在environ變量中保存有程序的所有環(huán)境變量,它以null結(jié)尾。
#include <stdlib.h>
extern char **environ;
char *getenv(const char *name);
name: 為環(huán)境變量的名稱 例如HOME
返回值 若環(huán)境變量有相關(guān)值則返回相關(guān)值,若無(wú)相關(guān)值則返回值的第一個(gè)字節(jié)時(shí)null
若不存在查詢的環(huán)境變量則返回null
int putenv( const char *string);
string 為 ”名字=值“的字符串作為參數(shù),并將該字符串加到當(dāng)前環(huán)境中。
返回值:如果由于內(nèi)存不足導(dǎo)致不能擴(kuò)展環(huán)境,他會(huì)返回 -1,并設(shè)置錯(cuò)誤變量errno為ENOMEM
通過(guò)如下形式也可以為程序設(shè)定環(huán)境變量
$ FRED=hello ./env FRED
Variable FRED has value hello
時(shí)間和日期
所有的UNIX系統(tǒng)都是以格林尼治時(shí)間1970年1月1日0點(diǎn)開始計(jì)時(shí)的。從那時(shí)開始以秒計(jì)時(shí)。用一個(gè)time_t來(lái)存放時(shí)間,其實(shí)是一個(gè)long ing型#include <time.h>time_t time(time_t *tloc);
獲取時(shí)間,返回值和,tloc都可以獲得時(shí)間
double difftime(time_t time1, time_t time2); //為了最大限度的考慮可移植性,最好使用此函數(shù)
獲得兩個(gè)時(shí)間的時(shí)間差,并將time1-time2的值作為浮點(diǎn)數(shù)返回
struct tm *gmtime(const time_t *timeval); //get man time ?將time獲得的時(shí)間轉(zhuǎn)換為年月日時(shí)分秒(獲得的時(shí)間為零時(shí)區(qū)時(shí)間)
stuct tm *localtime(const time_t *timeval)獲得的時(shí)間為本時(shí)區(qū)時(shí)間
timeval: time函數(shù)獲得的時(shí)間值
tm結(jié)構(gòu)體:
int tm_sec 秒 0~61 //閏秒或雙閏秒
int tm_min 分 0~59
int tm_hour 時(shí)
int tm_mday 日
int tm_mon 月
int tm_year 年
int tm_wday 星期幾
int tm_yday 一年中的第幾天,0~366
int tm_isdst 是否夏令時(shí)
time_t mktime (struct tm *timeptr);//將strut tm 轉(zhuǎn)換為 time_t 如果struct tm不能被轉(zhuǎn)換返回-1char *asctime(const struct tm *timeptr);//將給定的tm結(jié)構(gòu)時(shí)間按照固定的字符串格式輸出
char *ctime(const time_t *timeval);//以原始時(shí)間值為參數(shù),并將它轉(zhuǎn)換為一個(gè)更易讀的本地時(shí)間。相當(dāng)于asctime(localtime(timeval));
size_t strftime(char *s, size_t maxsize, const char *format, struct tm *timeptr);//格式化輸出tm結(jié)構(gòu)中的時(shí)間(string format time = strftime)
例如:年月日時(shí)分秒 “%Y%m%d%H%M%S“
char *strptime(const char *buf, const char *format, struct tm *timeptr);//讀取字符串buf中的日期到timeptr中,返回char指針指向buf中不能識(shí)別的字符
新聞熱點(diǎn)
疑難解答
圖片精選