
openlog 함수를 사용하여 로그파일을 기록할 때, 오류가 발생하는 이유는 로그파일이 이미 열려 있기 때문입니다. 로그파일을 열기 전에 openlog 함수를 호출하면 로그파일이 이미 열려 있기 때문에 오류가 발생합니다.
로그파일을 열기 전에 openlog 함수를 호출하지 않도록 수정하면 오류가 해결됩니다.
openlog 함수를 호출할 때, LOG_PID와 LOG_USER를 사용하는 것은 로그파일에 PID와 USER를 기록하는 것을 의미합니다.
LOG_PID는 로그파일에 현재 프로세스의 PID를 기록하는 옵션입니다.
LOG_USER는 로그파일에 현재 사용자를 기록하는 옵션입니다.
LOG_CONS는 로그파일을 표준 출력에 기록하는 옵션입니다.
LOG_NDELAY는 로그파일을 열기 전에 기록을 시작하는 옵션입니다.
openlog 함수를 호출할 때, LOG_PID와 LOG_USER를 사용하는 것과 LOG_CONS와 LOG_NDELAY를 사용하는 것은 로그파일을 기록하는 방식이 다르다는 것을 의미합니다.
LOG_PID와 LOG_USER를 사용하는 경우, 로그파일은 시스템 로그파일에 기록됩니다.
LOG_CONS와 LOG_NDELAY를 사용하는 경우, 로그파일은 표준 출력에 기록됩니다.
따라서, 로그파일을 기록하는 방식에 따라 openlog 함수를 호출할 때, 옵션을 선택해야 합니다.
예를 들어, 시스템 로그파일에 기록하려면 LOG_PID와 LOG_USER를 사용해야 합니다. 표준 출력에 기록하려면 LOG_CONS와 LOG_NDELAY를 사용해야 합니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
openlog("my_app", LOG_PID | LOG_CONS, LOG_USER);
syslog(LOG_INFO, "Hello, world!");
closelog();
return 0;
}
위 코드는 시스템 로그파일에 PID와 USER를 기록하고, 표준 출력에 기록합니다.
2025-05-30 03:34