시스템프로그래밍 (2.13 메시지 로깅 구현)
- 최초 등록일
- 2010.05.23
- 최종 저작일
- 2008.01
- 6페이지/
한컴오피스
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
시스템프로그래밍 (2.13 메시지 로깅 구현)
목차
※ 개 요
※ 프로그램 소스
※ 레포트 후기
본문내용
※ 개 요
메시지 로깅에 대해 리스트 객체와 비슷한 로깅(logging) 라이브러리에 대해 언급하고, 로깅도구는 호출자가 메시지를 배열의 끝에 저장할 수 있게 해준다. 로거(logger)는 메시지가 기록되는 시간을 기록한다.
#include <time.h>
typedef struct data_struct {
time_t time;
char *string;
} data_t;
int addmsg(data_t data);
void clearlog(void);
char *getlog(void);
int savelog(char *filename);
data_t 구조와 addmsg 함수는 listlib.h에서 list_t adddata와 같은 역할을 한다. savelog 함수는 로그된 메시지를 디스크 파일에 저장한다. clearlog 함수는 로깅된 메시지에 할당된 저장 공간을 해제하고 로깅된 메시지의 리스트를 비워 준다. getlog 함수는 로깅된 전체 메시지를 담을 수 있을 만한 충분한 공간을 할당 받고, 로그를 문자열을 복사하고, 문자열에 대한 포인터를 리턴한다. 이 메모리를 해제하는 것은 호출하는 프로그램이 책임져야 한다.
성공하면 addmsg와 savelog는 0을 리턴한다. getlog 호출에 성공하면 로그 문자열을 가리키는 포인터를 리턴한다. addmsg와 sacelog는 실패하면 -1을 리턴한다. getlog는 실패하면 NULL을 리턴한다. 이 세 가지의 함수는 실패 시 errno도 설정한다.
아래의 프로그램은 자체 리스트에 대한 정직인 구조와 log.h에 지정된 네가지 함수의 템플릿을 포함한다. loglib.c의 구현을 완성해라. 실행하는 어떤 프로그램에 의해 출력 되는 메시지를 저장하기 위해 로깅 장치를 사용해라. 디버깅과 테스트에 이것을 사용하면 어떨까?
#include <stdlib.h>
#include <string.h>
#include "log.h"
참고 자료
없음