파일 쓰기에서 파일 포인터에 관해서 질문

black0328의 이미지

FILE *fp 를 전역 변수로 선언하고
fp=fopen("Test.txt","w"); 로 파일을 생성,열고
fwrite를 합니다.

fwrite 하는 도중에 Test.txt를 TTTest.txt 로 이름을 변경하였습니다.

전 fwrite 가 안될거라 생각하였는데 실제로 TTTest.txt에는 원본 파일 사이즈만큼 쓰여졌습니다.

파일 이름이 변경되었음에도 불구하고 왜 이런 현상이 일어나는것입니까?

eungkyu의 이미지

black0328 wrote:
FILE *fp 를 전역 변수로 선언하고
fp=fopen("Test.txt","w"); 로 파일을 생성,열고
fwrite를 합니다.

fwrite 하는 도중에 Test.txt를 TTTest.txt 로 이름을 변경하였습니다.

전 fwrite 가 안될거라 생각하였는데 실제로 TTTest.txt에는 원본 파일 사이즈만큼 쓰여졌습니다.

파일 이름이 변경되었음에도 불구하고 왜 이런 현상이 일어나는것입니까?

파일을 열 때에는 이름으로 identify를 하지만, 한번 열리면 이미 inode 와 같은 내부적인 정보로 연결이 되어있습니다. 이름을 바꾼다고 그 파일의 본질(?)이 바뀌는 것은 아닙니다.

black0328의 이미지

답변에 감사드립니다.

한가지 더 궁금한게 잇습니다.

1G 파일을 100개로 잘라서 파일을 복사 할 경우 복사 하는 도중에

파일의 이름이 변경되었습니다. (Test.txt 에서 TTTest.txt 로 )

이를 다른 파일로 인식하여 더 이상 파일에 fwrite 하지 않게 하는 방법은 없을까요?