common.c
上传用户:tianjinjs
上传日期:2007-01-05
资源大小:309k
文件大小:2k
源码类别:

Modem编程

开发平台:

Unix_Linux

  1. /*
  2.  * common.c Functions common to minicom and runscript programs
  3.  *
  4.  * This file is part of the minicom communications package,
  5.  * Copyright 1991-1995 Miquel van Smoorenburg,
  6.  * 1997-1998 Jukka Lahtinen.
  7.  *
  8.  * This program is free software; you can redistribute it or
  9.  * modify it under the terms of the GNU General Public License
  10.  * as published by the Free Software Foundation; either version
  11.  * 2 of the License, or (at your option) any later version.
  12.  *
  13.  * Functions
  14.  * char *pfix_home(char *) - prefix filename with home directory
  15.  * void do_log(char *) - write a line to the logfile
  16.  *
  17.  * moved from config.c to a separate file, so they are easier
  18.  * to use in both the Minicom main program and runscript.
  19.  *
  20.  * 27.10.98 jl  converted do_log to use stdarg
  21.  */
  22. #include "port.h" 
  23. #include "minicom.h"
  24. #include <stdarg.h>
  25. /* #include "intl.h" */
  26. #if _HAVE_MACROS
  27. /* Prefix a non-absolute file with the home directory. */
  28. char *pfix_home(s)
  29. char *s;
  30. {
  31. #if defined(FILENAME_MAX)
  32.   static char buf[FILENAME_MAX];
  33. #else
  34.   static char buf[256];
  35. #endif
  36.   if (s && *s != '/') {
  37. snprintf(buf, sizeof(buf),"%s/%s", homedir, s);
  38. return(buf);
  39.   }
  40.   return(s);
  41. }
  42. #endif
  43. #ifdef LOGFILE
  44. /* Write a line to the log file.   jl 22.06.97 */
  45. void do_log(char *line, ...)
  46. {
  47.   FILE *logfile;
  48. #ifdef _HAVE_MACROS
  49.   char *logname = pfix_home(logfname);
  50. #else
  51.   char *logname = logfname;
  52. #endif
  53.   struct tm *ptr;
  54.   time_t    ttime;
  55.   va_list   ap;
  56.   if (logfname[0] == 0) return;
  57.   logfile = fopen(logname,"a");
  58.   if (!logfile) return;
  59.   va_start(ap, line);
  60.   ttime=time(NULL);
  61.   ptr=localtime(&ttime);
  62.   fprintf(logfile,"%04d%02d%02d %02d:%02d:%02d ",
  63.   (ptr->tm_year)+1900,(ptr->tm_mon)+1,ptr->tm_mday,
  64.   ptr->tm_hour,ptr->tm_min,ptr->tm_sec);
  65.   vfprintf(logfile, line, ap);
  66.   fprintf(logfile, "n");
  67.   fclose(logfile);
  68. }
  69. #else
  70. void do_log(char *line, ...)
  71. {
  72.   /* dummy function, don't do anything */
  73. }
  74. #endif