Linux 文件管理(C语言库函数二--程序日志)

文件删除和改名
int remove(const char *pathname);
int rename(const char *oldpath,const char *newpath);
remove函数删除pathname指向的文件名
rename函数修改文件名称
执行成功返回0,失败返回-1,错误代码保存在变量errno中。

 

//remove()函数和rename()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

int main(int arg, char * args[])
{
    if (arg < 1)
    {
        printf("请输入一个参数!\n");
        return 0;
    }
    //rename file
    //int eno=rename(args[1],args[2]);
    //remove file
    /*
      remove()函数头文件是stdio.h
     */
    int eno=remove(args[1]);
    if (eno == -1)
    {

        printf("error msg:%s\n", strerror(errno));
        return 0;
    }
    return 0;
}

 

 

 

//程序日志代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <time.h>

//write log
void WriteLog(char * msg)
{
    if(msg==NULL)
    {
        printf("msg is NULL!\n");
        return;
    }
    if(strlen(msg)>1000)
    {
        printf("message is too long!");
        return;
    }
    /*
     time_t是一个数字类型,一般用来描述时间  例如tData=1471933520;
     这个时间不是很直观,通常需要转化成人类熟悉的时间格式
     */
    time_t tDate;
    //获取当前系统时间
    time(&tDate);
    //一种时间结构体
    struct tm *eventTime;
    //将time_t类型转化成struct tm *结构体指针类型
    eventTime=localtime(&tDate);
    //tm_year表示年份,以1900为标准,1900的值是0,1901的值是1
    int iyear=eventTime->tm_year+1900;
    //tm_mon表示月份,从0开始到11结束,按照通常习惯应该从1月份开始
    int imon=eventTime->tm_mon+1;
    //tm_wday:表示一个星期的第几天 从1开始7结束
    //tm_yday:表示一年的第几天
    //tm_mday:表示正常的月天数
    int iday=eventTime->tm_mday;
    int ihour=eventTime->tm_hour;
    int imin=eventTime->tm_min;
    int isec=eventTime->tm_sec;
    //拼接年月日
    char sdate[11]={0};
    //强调:为什么sdate数组的大小是11而不是10,应为字符串最后必须是'\0'
    //%04d:右对齐 4位 不足补0
    sprintf(sdate,"%04d-%02d-%02d",iyear,imon,iday);
    //拼接时间
    char stime[9]={0};
    sprintf(stime,"%02d:%02d:%02d",ihour,imin,isec);
    //拼接信息字符串
    char smsg[1024]={0};
    sprintf(smsg,"%s %s\n\t%s\n",sdate,stime,msg);
    //open file
    FILE * pf=fopen("mylog.txt","a");
    if(pf==NULL)
    {
        printf("error msg:%s\n",strerror(errno));
        return ;
    }
    //write file
    fputs(smsg,pf);
    //close file stream
    fclose(pf);
}

int main(int arg, char * args[])
{
    WriteLog("this id bug!");
    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值