Tag: offset

read()调用后printf打印垃圾。 偏移始终打印为0

#include #include #include #include #include int main() { int file; off_t offset; if((file=open(“testfile.txt”,O_RDONLY)) < -1) return 1; char buffer[19]; if(read(file,buffer,19) != 19) return 1; fprintf(stdout,"%s\n",buffer); if(offset = lseek(file,-19,SEEK_END) < 0) return 1; fprintf(stdout,"%jd\n",(intmax_t)offset); if(read(file,buffer,19) != 19) return 1; fprintf(stdout,"%s\n",buffer); return 0; } 输出如下: 这是一个测试文件 0 他是一个测试文件 testfile.txt: 这是一个测试文件测试SEEK_END的工作原理这是一个测试文件 我尝试了不同的偏移格式,例如%ld,%d,但输出仍然相同。 无法弄清楚为什么垃圾出现在第一行和最后一行的末尾。 请帮忙。