linux打印时间
#include <stdio.h>#include <time.h>
#include <unistd.h>// uni sleep
#include <string.h>/**
* 取得 linux 时间,然后打印
*/
int main(int argc, char **argv)
{ time_t lt;
char *p = NULL;
while(1) {
lt = time(NULL);// 70 年的相对值
p =ctime(<);//传替地址时间 处理它,并反回地址
p='\0';// 把最后一个回车符 替换成 '\0'
printf("%s\r",p);
//回车 不换行// 这个函数 有IO 缓冲区的。。相当于文件 IO 输入输出的方式。。内存,文件,显示器
// 第一种 放在缓冲区的。。这个缓冲数据什么时候 放到屏幕上来,原来 每次 遇到换行时,就显示到屏幕
// 第二种 当用usleep 的时候 50毫秒的时候没有回车,它是隔一段时间刷了一段就出来了,也就是等到 缓冲区满了
// 自动送到屏幕去了。
// 第三种方案,用户自定义 ,当往缓冲区 写一次数据到缓冲区时,我对流 清仓工作。用fflush(stdout) 来清仓写到屏幕去。
fflush(stdout);
sleep(1);
// usleep(10000);
}
return 0;
}
附上一篇关于linux 时间的帖子:http://blog.csdn.net/lupyhlp0925/article/details/37933389 上面那种方式,打印的时间不是常见的年月日时分秒。
另外一种方式:
int main()
{
char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
time_t timep;
struct tm *p;
time(&timep); /*获得time_t结构的时间,UTC时间*/
p = localtime(&timep); /*转换为struct tm结构的当地时间*/
printf("%d/%d/%d ", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday);
printf("%s %d:%d:%d ", wday, p->tm_hour, p->tm_min, p->tm_sec);
return 0;
}
页:
[1]