묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
fopen()함수의 r 과 a 옵션에 대한 질문이요...
2004.04.07 19:34
질문1)
test.txt 파일의 내용이 12345678910 인데요. 이 파일을 가지고 다음과 같이 코딩을 했거든요.
<?
$fp=fopen("./test.txt","a+");
fseek($fp,3,SEEK_SET);
fwrite($fp,"abcde");
rewind($fp);
echo fread($fp,100);
fclose($fp);
?>
저는 3번째 커서의 위치에 abcde 가 쓰여지기 때문에...
123abcde45678910
로 나올 줄 알았는데,
12345678910abcde
로 나와버리네요.
원래 a 나 a+ 옵션은 커서의 위치를 지정해도 파일내용의 맨끝에 부터 쓰기가 되는
건가요?
질문2)
이번에는 동일한 내용의 test.txt 파일을 가지고 다음과 같이 코딩을 했거든요.
<?
$fp=fopen("./test.txt","a+");
echo fread($fp,100);
fclose($fp);
?>
저는 커서의 위치가 맨 끝에 있기 때문에 읽기를 해도 아무런 문자가 출력되지 않을
것이라고 생각는데...
12345678910
이 나와버리네요.
그렇다면, a 와 a+ 옵션은 무조건 파일 내용의 맨 앞에서 부터 읽기를 실행하고, a+ 옵션은
무조건 파일 내용의 맨 끝에서 부터 쓰기를 실행하나요?
질문3)
r 이나 r+ 옵션은 a와 a+ 옵션과는 달리 rewind() 함수나 fseek() 함수로 커서의 위치를 지
정하면 지정된 위치에서 읽기와 쓰기를 실행하던데요. 문제는 r+ 옵션이 쓰기를 할 때 기존
내용을 지우면서 쓰기를 한다는 점이거든요.
원래 r+ 옵션은 기존 내용을 지우지 않고 그대로 유지하면서 지정된 위치에 쓰기를 실행할
수 없는 건가요?
test.txt 파일의 내용이 12345678910 인데요. 이 파일을 가지고 다음과 같이 코딩을 했거든요.
<?
$fp=fopen("./test.txt","a+");
fseek($fp,3,SEEK_SET);
fwrite($fp,"abcde");
rewind($fp);
echo fread($fp,100);
fclose($fp);
?>
저는 3번째 커서의 위치에 abcde 가 쓰여지기 때문에...
123abcde45678910
로 나올 줄 알았는데,
12345678910abcde
로 나와버리네요.
원래 a 나 a+ 옵션은 커서의 위치를 지정해도 파일내용의 맨끝에 부터 쓰기가 되는
건가요?
질문2)
이번에는 동일한 내용의 test.txt 파일을 가지고 다음과 같이 코딩을 했거든요.
<?
$fp=fopen("./test.txt","a+");
echo fread($fp,100);
fclose($fp);
?>
저는 커서의 위치가 맨 끝에 있기 때문에 읽기를 해도 아무런 문자가 출력되지 않을
것이라고 생각는데...
12345678910
이 나와버리네요.
그렇다면, a 와 a+ 옵션은 무조건 파일 내용의 맨 앞에서 부터 읽기를 실행하고, a+ 옵션은
무조건 파일 내용의 맨 끝에서 부터 쓰기를 실행하나요?
질문3)
r 이나 r+ 옵션은 a와 a+ 옵션과는 달리 rewind() 함수나 fseek() 함수로 커서의 위치를 지
정하면 지정된 위치에서 읽기와 쓰기를 실행하던데요. 문제는 r+ 옵션이 쓰기를 할 때 기존
내용을 지우면서 쓰기를 한다는 점이거든요.
원래 r+ 옵션은 기존 내용을 지우지 않고 그대로 유지하면서 지정된 위치에 쓰기를 실행할
수 없는 건가요?