| [ CnUnix ] in KIDS 글 쓴 이(By): backdrum (뒷 북) 날 짜 (Date): 2003년 9월 21일 일요일 오후 09시 45분 27초 제 목(Title): 파일의 앞부분 잘라 내기...[q] UDP 로 보내야 할 로그들이 기록된 로그 파일이 있습니다. 로그들을 한라인씩 보내는데, 서버로부터의 응답 처리도 해줘야 합니다. 서버 application에서 OK가 오면 다음 로그, error 또는 timeout이면 재전송... 전송되는 로그들은 반드시 발생시간을 기준으로 순서가 맞아야 합니다. 즉, 번저 발생된 로그가 먼저 전송되어야... 전송된 로그는 로그 파일에서 삭제해야 합니다. 그리고 로그 파일은 반드시 text 파일이어야 합니다. 근데 로그 발생 빈도가 순간적으로 엄청 많을 수 있습니다. 따라서 로그 한라인을 보내고 응답을 기다리면서 다른 쓰레드는 로그 파일에 계속 로그들을 기록합니다. 문제는 OK 가 떨어졌을 때 로그 파일에서 해당 로그(파일의 제일 앞이겠죠) 를 삭제해야 하는데 새로운 temp 파일에 다음로그부터 복사한 후 rename하는 것은 CPU를 너무 많이 먹습니다. 대기중인 로그가 많을 수록 부하가 더 커집니다. 그래서 현재의 파일에서 파일 시작 부분만 다음 로그 위치로 옮길 수 있는 방법이 있나요??? -_-;;; (있을리 만무하지만.. ㅜ.ㅜ) 플랫폼은 win2000, VS .NET 2003 입니다. |