1./*
2. * test.c
3. *
4. * Created on: 2011-04-23
5. * Author: lingdxuyan
6. */
7.
8.
9. #include /* 标准输入输出定义 */
10. #include /* 标准函数库定义 */
11. #include /* Unix 标准函数定义 */
12. #include
13. #include
14. #include
15. #include /* 文件控制定义 */
16. #include /* 错误号定义 */
17. #include /* 信号定义 */
18. #include /* 定时器定义 */
19. #include /* 可变参数定义 */
20. #include /* syslog定义 */
21. #include
22. #include
23.
24. #define true 1
25. #define false 0
26.
27. typedef unsigned char BYTE;
28. typedef BYTE bool;
29. typedef BYTE byte;
30.
31. #define MAX_BUF_SIZE 1024
32.
33. #define CONFIG_FILE "/etc/daemon.conf"
34. #define LOG_FILE "/tmp/daemon.log"
35. #define LOCK_FILE "/var/run/daemon.pid"
36. #define LOCK_FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
37.
38.
39.static volatile sig_atomic_t g_nUpdateParameter = 1;
40.static volatile sig_atomic_t g_nServer = 0;
41.//static volatile int g_nUpdateParameter = 1;
42.//static volatile int g_nServer = 0;
43.
44.
45. /*
46. * 功能: 写日志
47. */
48. void vWriteLog(int nPriority, const char *fmt, va_list va)
49. {
50. #ifdef USE_SYSLOG
51. vsyslog(LOG_DAEMON | nPriority, fmt, va);
52. #else
53. FILE *stream;
54. if (nPriority & LOG_ERR)
55. stream = stderr;
56. else
57. stream = stdout;
58. vfprintf(stream, fmt, va);
59. fflush(stream);
60. #endif
61. }
62. void WriteLog(int nPriority, const char *fmt, ...)
63. {
64. va_list va;
65.
66. va_start(va, fmt);
67. vWriteLog(nPriority, fmt, va);
68. va_end(va);
69. }
70.
71. /*
72. * 功能: 写错误日志,用法类似perror
73. */
74. void ErrorLog(const char *str)
75. {
76. WriteLog(LOG_ERR, "%s: %s\n", str, strerror(errno));
77. }
78. /*
79. * 功能: 写错误日志,用法类似于printf
80. */
81. void ErrorLogFmt(const char *fmt, ...)
82. {
83. va_list va;
84.
85. va_start(va, fmt);
86. vWriteLog(LOG_ERR, fmt, va);
87. va_end(va);
88. }
89.
90. /*
91. * 功能: 写日志,用法类似printf
92. */
93. void InfoLog(const char *fmt, ...)
94. {
95. va_list va;
96.
97. va_start(va, fmt);
98. vWriteLog(LOG_INFO, fmt, va);
99. va_end(va);
<