2010/02/04 10:38

WOL에 파일 입출력을 이용한 최근정보 저장기능 추가 ▒ Wake On Lan (WOL)

프로그램을 실행할때 init.ini 텍스트 파일을 만들고
파일 입출력을 통해... 최근에 WOL기능을 이용했던 주소를 불러들여온다....

차후... 프로필을 통한 저장 기능을 추가 시킬 계획이다.

이 기능을 추가 할때 막혔던 것은...
1. 파일 입출력 스트림을 연결하기 위해 fopen함수를 쓰는데
    이때 전달하는 인자중에 모드를 설정하는 부분이 있다.


"r"     : 읽기를 위해 텍스트 파일 열기
 "w"    : 쓰기를 위해 텍스트 파일 만들기
 "a"    : 텍스트 파일 추가하기
 "r+"   : 읽기/쓰기를 위해 텍스트 파일 열기
 "w+"  : 읽기/쓰기를 위해 텍스트 파일 만들기
 "a+"  : 읽기/쓰기를 위해 텍스트 파일 추가하기  

열기 를 선택했을 경우 지정된 경로에 파일이 없을때 에러를 표시한다.
만들기 를 선택했을 경우 지정된 경로에 파일이 있을때에도 만들어 버린다.(덮어쓰기)
추가하기를 선택했을 경우 지정된 경로에 파일이 없을땐 새로 생성하고 있으면 현재 있는 파일을 연다.

하지만 이때 간과해서는 않되는것이 있다.
열기만들기 로 선택했을땐 파일 포인터가 맨 앞을 가르키지만
추가하기 로 선택했을 경우 파일 포인터가 파일 맨끝  \n값 바로 전을 가르키게 된다. (※)
이렇게 되면 파일 포인터를 처음 생성된 위치로 이동시키는  rewind 함수나 fseek함수를 이용할때....
즉 파일 맨끝에 위치하게 되기 때문에 지난 정보를 삭제할때나 읽을려고 할때 어떠한 오류를 범할 수 있게 된다.

그래서 이번 코드에서 이렇게 구성을 했다.

 if((fp = fopen("init.ini","r+"))==NULL)
  if((fp = fopen("init.ini","w+"))==NULL)
  {
   printf("Cannot open FILE");
   exit(1);
  }
 
이렇게 되면 열기 로 해서... 오류가 있으면 만들기 로 해서 파일 입출력 스트림을 생성한다.

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://ongre.egloos.com/tb/3573668 [도움말]

덧글

댓글 입력 영역