프로그램을 실행할때 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);
}
이렇게 되면 열기 로 해서... 오류가 있으면 만들기 로 해서 파일 입출력 스트림을 생성한다.



덧글