Linux C 时间 及 文件IO编程

摘要:

        本篇是IO编程第二篇文章,主要讲述 IO编程中的时间编程基础以及文件IO编程基础。涉及到时间编程和文件IO的函数。文章中基本每个函数都举了一些简单的例子,希望能帮助大家理解。

目录

一,时间编程

概念        

在程序开发费时,可以获取标准时间(以秒为单位)

将标准时间转换为字符串格式的时间

将标准时间转换为本地时间

将本地时间转换为字符串格式的时间

二、文件IO

概念

文件描述符 fd

当运行程序时,系统会自动打开三个标准文件

程序(静态)

进程(动态)

出错处理

全局错误码errno

文件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;
	
}

二、文件IO

概念

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值