파일에 1바이트가 더 보고되는 이유는 무엇입니까?

파일에 1바이트가 더 보고되는 이유는 무엇입니까?

보고서에 추가 바이트가 표시되는 이유는 무엇입니까? 끝에 개행 문자가 없습니다. 비슷한 결과로 다른 파일을 테스트했습니다. 리눅스 3.2를 사용합니다.

$ cat testfile.txt 
aabbcd

$ wc -c testfile.txt 
7 testfile.txt

마찬가지로 C++를 사용하면 바이트 수가 1개 더 보고됩니다.

...
file(filename, std::ifstream::in | std::ios::binary);
file.seekg(0, std::ifstream::end);
int fsize = file.tellg();
...

aabbcd 텍스트는 6자로 구성되며 ASCII 인코딩에서는 6바이트여야 합니다. 7바이트 보고서를 받는 이유는 무엇입니까?

참고: 예제에 문자가 있지만 텍스트나 형식화된 입력이 아니라 바이트에만 관심이 있습니다.

답변1

vi그리고 다른 많은 편집자들수동으로 추가하지 않아도 파일 끝에 추가 줄바꿈이 추가됩니다.. 예를 들어 aabbcdvi에서 작성하고 return 키를 누르지 않고 저장하면 파일이 od -x;

0000000      6161    6262    6463    000a
0000007

...이것은 (리틀 엔디안 덤프) aabbcd+ 개행입니다.

ls -l파일은 7바이트로도 표시됩니다.

$ ls -l testfile.txt 
-rw-r--r--  1 me  staff  7 Jul 26 09:52 testfile.txt

이는 귀하의 파일에도 해당될 가능성이 높습니다.

관련 정보