已经有关于"我如何获得由tmpfile()
创建的路径?"的问题.但我的理解是,该标准并不保证创建的文件具有可访问的路径.那么,如果标准不能保证这一点,那么在您写入tmpfile之后,从tmpfile读取的"标准"方式是什么呢?(当然,对于一个永远不会被写入的tmpfile来说是没有意义的,如果您从来没有读过它,那么写入它也没有意义)
我目前有这样的代码:
struct foo {
...
};
FILE *fp = tmpfile();
struct foo x = { ... };
struct foo y = { ... };
int err = fwrite(&x, sizeof(struct foo), 1, fp);
printf("err: %x/%x\n", err, errno);
fflush(fp);
err = fread(&y, sizeof(struct foo), 1, fp);
printf("err: %x/%x\n", err, feof(fp));
这就给出了输出
err: 1/0
err: 0/1
我在onlinegd.com上运行这段代码是因为我在这台机器上没有编译器,所以可能是onlinegdb不符合要求,但我想知道是不是这样,或者我的代码是否做错了什么.