为什么 fputs 和 fprintf 反转流顺序

why fputs and fprintf reverse stream order

我不明白为什么 fputs 和 fprintf 反转流顺序。

int fputs (const char * str, FILE * stream);
int fprintf (FILE * stream, const char * format, ...);
ssize_t write(int fd, const void *buf, size_t count);

我知道fprintf把stream放在forward中支持可变参数,但是为什么fputs系列不保持一致性 ???

因为这些东西是几十年前写的,所以一般来说这只是历史学家感兴趣的问题:-)

可能只是一个设计决定(或缺乏决定)导致他们变成这样,并且由于 ISO 重视向后兼容性,他们从未改变过它。

可能是先写了puts,到了写fputs的时候,开发者只是简单地剪切'n'粘贴了它, 将新参数添加到最后。即使 printf/fprintf 存在相同的情况,由于需要将可变参数列表放在末尾,这也是不可能的。

但是,撇开假设不谈,既然我们心爱的丹尼斯走了,我们可能永远不会知道实际原因..