今天写了个c程序,其中有一段代码是,用read从一个文件中读取内容,然后使用printf将读取的内容显示出来。可是读取的显示出来的内容总有几个地 方是乱码,而且还有一部分内容是重复的。什么原因?过了一会儿,反应过来了,read函数在读取内容时,并不会在读取的内容的最后添加字符串的结束标志 '/0',因此读取出来的内容并不是一个合法的字符串,要自己添加一个字符串结束符才行。
char buf[512];
while((size = read(fd,buf,sizeof(buf)-1)) > 0){
buf[size] = '\0';
printf("%s\n",buf);
}
这样就不会出现乱码了