linux启动qt登陆时_Linux 下Qt实现守护进程实例(转)

本文介绍了一个Linux下的Qt守护进程实现示例,包括如何处理SIGHUP和SIGUSR1信号,以及重定向标准输入输出。代码展示了如何创建守护进程、读取配置文件、写日志以及进程间通信的方法。
摘要由CSDN通过智能技术生成

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);

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值