linux的fwrite()使用方法,当前时间写入文本的程序

fwrite函数

1.函数功能

用来读写一个数据块。

2.一般调用形式

fwrite(buffer,size,count,fp);

3.说明

(1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。

(2)size:要读写的字节数;

(3)count:要进行读写多少个size字节的数据项;

(4)fp:文件型指针

这是工作中用 fwrite函数写的例子,不仅记录下自己的学习情况,也分享给各位朋友这个fwrite函数实例。

这个fwrite实例是当前时间写入文本的程序,下面这个是fwrite函数的使用方法。
int markfile(void )
{
    FILE *sp ;
//    char buff[512] ;
    char count = 0;
    char *currentime = NULL;
    char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
    time_t timep;
    struct tm *p;
    time(&timep);
    p = localtime(&timep);
    currentime = ctime(&timep);
//    memset(buff,0,512);
//    sprintf(buff,"%s",currentime);
    printf("%d/%d/%d",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);
    printf(" %s %d:%d:%d\n",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);
    if((sp = fopen("/root/kay/mark.txt","a+")) == NULL)
       return 0;
    fwrite(currentime,size(currentime)-1,1,sp);
    fclose(sp);
    return 1;
}

size(currentime)( = 26 )的作用是得出指针currentime所指的字符串的个数(包括‘\0‘),但是会输出乱码(应该是字符串的个数太长了),因此,我把个数减掉一个,就能舒适正确结果。

用另外一种方法:
int markfile(void )
{
    FILE *sp ;
    char buff[512] ;
    char count = 0;
    char *currentime = NULL;
    char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
    time_t timep;
    struct tm *p;
    time(&timep);
    p = localtime(&timep);
    currentime = ctime(&timep);
//    memset(buff,0,512);
    sprintf(buff,"%s",currentime);
    printf("%d/%d/%d",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);
    printf(" %s %d:%d:%d\n",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);
    if((sp = fopen("/root/kay/mark.txt","a+")) == NULL)
       return 0;
    fwrite(currentime,(count = strlen(buff)),1,sp);
    printf("%d\n",count);
    fclose(sp);
    return 1;
}
count = strlen(buff) 来获得字符的个数  结果是25,

综上的对比 觉得是fwrite()输出的字符不要包括结束符(‘\0‘),否则会因为字符个数多了而造成乱码

看完的朋友,觉得对你们有帮助就顶一个,如果觉得哪里不好,可以发表下看法,共同学习。

时间: 2024-11-05 11:31:37

linux的fwrite()使用方法,当前时间写入文本的程序的相关文章

Linux应用层系统时间写入RTC时钟的方法

Linux内核版本:linux-3.0.35 开发板:i.MX6S MY-IMX6-EK200 系统:Ubuntu12 前言:之前写过一篇关于如何通过应用层程序读取系统时间的blog,今天再写一篇如何写入并保存RTC时钟的blog吧. 一.写入时间 1.预备知识: a.mktime 头文件:#include <time.h> 函数:time_t mktime(struct tm *timeptr) 函数说明:mktime()用来将timeptr所指的tm结构体数据换成从公元1970年1月1日0

linux cat命令使用方法详解--把档案串连接后传到基本输出

linux cat命令使用方法详解--把档案串连接后传到基本输出 日期:2011-12-05 点击:2324 来源: 未知 分享至: 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)参数:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号-s 或 --squeeze-b

Linux正确的关机方法

对于Windows用户,如果遇到不爽的时候,往往可以按住电源键几秒钟之后进行强制关机.但是对于Linux,强烈不建议这么做. 因为Windows(非NT主机系统)系统是单用户.“假”多任务的,所以即使你的计算机关机,对于别人也没有什么影响. 而Linux是多用户.多任务的操作系统,每个程序(或者服务)都是在后台执行的.因此,在你看不到的屏幕背后其实可能有很多人同时在你的主机上面工作,例如浏览网页.收发email等,如果你直接按下电源来关机,那其他人的数据可能就此中断,绝对叫人无语凝噎啊.此外,最

Linux网络性能优化方法简析

Linux网络性能优化方法简析 2010-12-20 10:56 赵军 IBMDW 字号:T | T 性能问题永远是永恒的主题之一,而Linux在网络性能方面的优势则显而易见,这篇文章是对于Linux内核中提升网络性能的一些优化方法的简析,以让我们去后台看看魔术师表演用的盒子,同时也看看内核极客们是怎样灵活的,渐进的去解决这些实际的问题. AD:2014WOT全球软件技术峰会北京站 课程视频发布 对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性

linux 安装VMware Tools 方法 (1)

虚拟机安装 VMware Tools for Linux 介绍: VMware Tools是VMware虚拟机中自带的一种增强工具,相当于VirtualBox中的增强功能(Sun VirtualBox Guest Additions),是VMware提供的增强虚拟显卡和硬盘性能.以及同步虚拟机与主机时钟的驱动程序. 只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之前自由移动(不用再按ctrl+alt

Linux系统编程_5_获取系统时间

Linux环境中时间编程函数: 比较常用的是ctime与localtime char *ctime(const time_t *timep); char *ctime_r(const time_t *timep, char *buf); struct tm *localtime(const time_t *timep); struct tm *localtime_r(const time_t *timep, struct tm *result); Linux环境中时间编程结构体: struct

linux基础命令使用方法

find [功能说明] 按指定的要求查找文件 [语法格式] Find 查找路径 文件类型  文件名字 等 [选项参数] -name 以名字格式查找 -type 以文件类型查找 -maxdepth 规定查找深度 -mtime 按文件的修改时间 [实际操作] 查找root下所有的oldboy的文件 [[email protected] ~]# find . -type f -name "oldboy" ./oldboy/ext/oldboy ./oldboy/oldboy [[email 

怎么设置Linux swap分区?方法教程

如何设置Linux swap分区 看到不少朋友问linux下swap分区的问题,收集到一篇 不错的文章 ,分享下. 什么是Swap?Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要.通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用.Swap的原理是一个较复杂的问题,需要大量的篇幅来说明.在这里只作简单的介绍,在以后的文章中将和大家详细讨论Swap实现的细节.众所周知,现代操作系统都实现了“虚拟内

Linux内核探索之路&mdash;&mdash;关于方法

转载自:http://blog.chinaunix.net/uid-20608849-id-3014502.html Linux内核实践之路 -给那些想从Linux内核找点乐趣的人 一个不能回避的尴尬问题:研究Linux内核是不是必须要通过研读那些错综复杂的"邪恶"代码,才能真正理解它? 关于方法     "术业要有专攻".还记得大学时候训练英语的听说能力.每天到多媒体教室上一个多小时 的课,但是一个学期下来,英语听说水平不但没有任何进展,还导致了对英语学习的厌恶,