我正在使用perror()来打印错误消息,例如:
pid = fork(); if (pid < 0) { perror("couldn't fork"); exit(EXIT_FAILURE); }
是否可以使用errno/perror()
设施,但将生成的消息定向到系统日志(/var/log/syslog
)?
我在一个可以在守护进程和非守护进程模式下运行的程序的上下文中询问这个问题.在守护程序模式下,perror()
消息不会出现在syslog上.
用于strerror
根据错误代码获取错误消息,而不打印它.然后将其传递给syslog
任何其他日志消息:
syslog(LOG_ERR, "Couldn't fork: %s", strerror(errno));