该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
作业党吗
那就不码字了,上代码, gcc 编译,然后用 strace 跑一下就知道了:
#include
#include
#include
#define wlog(str, ...) do { \
char buf[4096]; \
sprintf(buf, str, ##__VA_ARGS__); \
write(1, buf, strlen(buf)); \
} while (0)
int main()
{
const char *file = "/tmp/testfile";
FILE *fp1 = fopen(file, "rw+");
FILE *fp2 = fopen(file, "r");
int i, t1, t2;
for (i = 1; i < 10; i++) {
wlog("---------------------------------------------\n");
rewind(fp1);
wlog("fprintf %d to fp1\n", i);
fprintf(fp1, "%d\n", i);
rewind(fp1);
wlog("fscanf from fp1\n");
fscanf(fp1, "%d", &t1);
rewind(fp2);
wlog("fscanf from fp2\n");
fscanf(fp2, "%d", &t2);
wlog("the result: i: %d, t1: %d, t2: %d\n", i, t1, t2);
}
fclose(fp1);
fclose(fp2);
return 0;
}