LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 705|回复: 3

请大家帮忙看一下这个程序!谢谢

[复制链接]
发表于 2007-4-1 12:04:34 | 显示全部楼层 |阅读模式
是这样的,我写了一个打印函数
void printerror(char* szMsg)
{
        time_t ltime;
        struct tm* gmt;
        FILE* fplog = fopen(szLogFile, "a+b");               /*Log 文件的句柄*/
      
        psv_time(&ltime);                                          /* 这是我自己写的函数,得到监控程序的运行时间 */
        gmt = localtime(&ltime);                                      /* 换算成本地时间 */

        fprintf(fplog, "[%d:%02d:%02d:%02d:%02d] %s", gmt->tm_year+1900, gmt->tm_mon+1, gmt->tm_mday, gmt->tm_hour, gmt->tm_min, szMsg);
        fflush(fplog);
}
另有一个socket通信的函数
if( connect(......) == -1 )
{
       printerror("error in connect \n");
}
有两个问题
1。程序每次执行到connect的时候就自己退出了,本来是应该打印信息的结果不打印。如果把printerror函数中的fprintf(...)换成fprintf(fplog,"%s%s",actime(gmt),szMsg)就能正常执行。但我想换成自己定义的时间格式,真的好奇怪!!!
2。printerror()中我自己写的的psv_time函数我明明把头文件包含进去了,但编译硬是说我没有申明,快疯了!!!
看在写这么多的份上,请大家指点一下阿,先谢了!
发表于 2007-4-2 19:39:36 | 显示全部楼层
应该还是你自己写的printerror()函数有问题,编译时没有申明是不是你写错了函数名了
回复 支持 反对

使用道具 举报

发表于 2007-4-3 18:30:16 | 显示全部楼层
gmt->tm_year+1900, gmt->tm_mon+1
这样写指针不知道指到哪里去了。你加的是指针本身而不是指针指向的内容。
回复 支持 反对

使用道具 举报

发表于 2007-4-10 21:35:15 | 显示全部楼层
  1. fprintf(fplog, "[%d-%02d-%02d-%02d-%02d] %s",
  2.         gmt->tm_year+1900, gmt->tm_mon+1, gmt->tm_mday, gmt->tm_hour, gmt->tm_min, szMsg);
复制代码
这句是没有问题的。
但是,你的文件怎么打开是否成功也不检查,也不关闭呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表