摘要:
本篇是IO编程第二篇文章,主要讲述 IO编程中的时间编程基础以及文件IO编程基础。涉及到时间编程和文件IO的函数。文章中基本每个函数都举了一些简单的例子,希望能帮助大家理解。
目录
一,时间编程
概念
世界标准时间以格林威治时间为起点分为24个时区,从格林威治向东时间早,向西时间晚
在程序开发费时,可以获取标准时间(以秒为单位)
#include <time.h>
time_t time(time_t *tloc);
//参数 -----保存秒数的变量地址
//返回值 --- 成功:秒数, 失败:-1
秒数: 从1970-01-01 00:00:00 到 此时此刻的秒数
例如:
#include <stdio.h>
#include <time.h>
int main(int argc,char **argv)
{
time_t tm;
printf("%ld\n",time(&tm));
printf("tm = %ld\n",tm);
return 0;
}
将标准时间转换为字符串格式的时间
char *ctime(const time_t *timep);
//参数 ----- time()返回的秒数
//返回值 ----成功:字符串格式的时间,失败:NULL
例如:
int main(int argc,char **argv)
{
time_t tm;
//获取标准数据
time(&tm);
//将标准时间转为字符串
printf("%s",ctime(&tm));
return 0;
}
将标准时间转换为本地时间
struct tm *localtime(const time_t *timep);
//参数 -------- time()返回的秒数
//返回值---- 成功:结构体struct tm的指针 失败:NULL
struct tm
{
int tm_sec; /* Seconds. [0-60] (1 leap second) */
int tm_min; /* Minutes. [0-59] */
int tm_hour; /* Hours. [0-23] */
int tm_mday; /* Day. [1-31] */
int tm_mon; /* Month. [0-11] */
int tm_year; /* Year - 1900. */
int tm_wday; /* Day of week. [0-6] */
int tm_yday; /* Days in year.[0-365] */
int tm_isdst; /* DST. [-1/0/1]*/
};
例如:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define perr(str) ({ perror(str); exit(1);})
int main(int argc,char **argv)
{
time_t tm;
struct tm * tmp;
//获取标准数据
time(&tm);
tmp = localtime(&tm);
if(tmp == NULL){
perror("localtime");
exit(1);
}
printf("%4d-%02d-%02d\n",tmp->tm_year+1900,tmp->tm_mon+1,tmp->tm_mday);
printf("%02d:%02d:%02d\n",tmp->tm_hour,tmp->tm_min,tmp->tm_sec);
return 0;
}
将本地时间转换为字符串格式的时间
char *asctime(const struct tm *tm);
例如:
int main(int argc,char **argv)
{
time_t tm;
struct tm * tmp;
//获取标准数据
time(&tm);
printf("%s",asctime(tmp));
return 0;
}