在linux环境下,使用open,read读取一个txt文件,出现了一些奇怪的地方。
1.文件是UTF-8编码 全英文,无中文 真实的文本文件是这样的:
- 设置了一个char buf[20],fd是一个文件标示符。 3.已经得知sizeof(char)=1 sizeof(buf)=20
3.read(fd,buf,1);
结果显示:@
这里读入一个字节的话,为什么是这个东西?
4.read(fd,buf,2);
结果显示:bf
这里为什么又正常了?
5.read 3,4,5,6,7 个字节都是正常的
6.read(fd,buf,8);
再次错误:
又乱码了
7.read(fd,buf,9);
结果是:
8.read(fd,buf,10);
正常
9.read(fd,buf,16);
再次错误:
10.read(fd,buf,17);
还是乱码:
11.read(fd,buf,18);
这次还是乱码,但是后面的g显示出来了。
12.read(fd,buf,19);
还是乱码,但是后面的r显示出来了。
13.read(fd,buf,20);
还是乱码,但是后面的e显示出来了。