i was wrong! 虽然setbuf可以让程序自己管理缓冲,但是像getchar,gets这些标准IO函数还是要通过隐藏的stdin进行操作,而stdin是啥呢?还是一个FILE*,而FILE*自己内部有很多东西比如记录下一个字符的位置,有没有读尽缓存,因此直接通过memset去清除缓存还是很野蛮的动作,比较危险,但是文章也还有点价值,我实在是不舍得删,就先写一段放在这里吧 #include <stdio.h> #include <stdlib.h> int main(i
笔者测试SPEC14的workload的时候,需要自定义workload,又需要在Windows和Linux平台上都要测试,所以就遇到了这么个问题:测试工具报错,但是报出来的错误信息又跟错误对不上. 工具没问题,不跨平台就没问题,所以首先怀疑跨平台的文件是不是有什么不一样. 使用notepad++打开导出的workload文件,发现Linux平台下和Windows平台下的长的不一样. 使用notepad++的状态栏的功能,可以快速转换这两种换行符. 或者遵循下面的步骤: For a single