Linux环境-环境变量、时间和日期

本文介绍了Linux环境中如何操作环境变量,包括通过C语言的getenv和putenv函数进行访问和设置,以及如何在命令行动态设定。此外,还详细讲解了获取和处理系统时间的方法,如time、difftime、gmtime、localtime等函数的使用,以及tm结构体的各个成员。最后,提到了时间格式化输出函数strftime。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境变量

环境由一组格式为“名字=值“的字符串组成

在C语言程序中可以通过putenv和getenv函数来访问和设置环境变量,

在environ变量中保存有程序的所有环境变量,它以null结尾。

#include <stdlib.h>

extern char **environ;

char *getenv(const char *name);

name: 为环境变量的名称 例如HOME

返回值 若环境变量有相关值则返回相关值,若无相关值则返回值的第一个字节时null

            若不存在查询的环境变量则返回null

int putenv( const char *string);

string 为 ”名字=值“的字符串作为参数,并将该字符串加到当前环境中。

返回值:如果由于内存不足导致不能扩展环境,他会返回  -1,并设置错误变量errno为ENOMEM

通过如下形式也可以为程序设定环境变量

$ FRED=hello ./env FRED

Variable FRED has value hello

时间和日期

所有的UNIX系统都是以格林尼治时间1970年1月1日0点开始计时的。从那时开始以秒计时。
用一个time_t来存放时间,其实是一个long ing型


#include <time.h>

time_t time(time_t *tloc);

获取时间,返回值和,tloc都可以获得时间

double difftime(time_t time1, time_t time2); //为了最大限度的考虑可移植性,最好使用此函数

获得两个时间的时间差,并将time1-time2的值作为浮点数返回

struct tm *gmtime(const time_t *timeval); //get man time ?将time获得的时间转换为年月日时分秒(获得的时间为零时区时间)

stuct tm *localtime(const time_t *timeval)获得的时间为本时区时间

timeval: time函数获得的时间值

tm结构体:

int tm_sec 秒 0~61 //闰秒或双闰秒

int tm_min 分 0~59

int tm_hour 时

int tm_mday 日

int tm_mon 月

int tm_year 年

int tm_wday 星期几

int tm_yday 一年中的第几天,0~366

int tm_isdst 是否夏令时

time_t mktime (struct tm *timeptr);//将strut tm 转换为 time_t 如果struct tm不能被转换返回-1

char *asctime(const struct tm *timeptr);//将给定的tm结构时间按照固定的字符串格式输出

char *ctime(const time_t *timeval);//以原始时间值为参数,并将它转换为一个更易读的本地时间。相当于asctime(localtime(timeval));

size_t strftime(char *s, size_t maxsize, const char *format, struct tm *timeptr);//格式化输出tm结构中的时间(string format time = strftime)

例如:年月日时分秒 “%Y%m%d%H%M%S“

char *strptime(const char *buf, const char *format, struct tm *timeptr);//读取字符串buf中的日期到timeptr中,返回char指针指向buf中不能识别的字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值