gpt4 book ai didi

c - stdio 函数如何处理部分成功?

转载 作者:太空狗 更新时间:2023-10-29 16:10:58 26 4
gpt4 key购买 nike

如果我这样做

int res = puts("hello world");

"hello"后出现错误,会返回EOF还是5?

http://pubs.opengroup.org/onlinepubs/9699919799/functions/puts.html对此似乎不是很清楚。

显然 http://pubs.opengroup.org/onlinepubs/9699919799/functions/fwrite.html确实处理部分成功(虽然我想如果 size!=1 一定会有一些信息丢失),但是 stdio 系列的其余部分呢?

最佳答案

从您为 puts 链接到的 POSIX 引用:

Upon successful completion, puts() shall return a non-negative number. Otherwise, it shall return EOF, shall set an error indicator for the stream, and errno shall be set to indicate the error.

这说得很清楚了:如果在输出过程中随时随地出现错误,那么 EOF 将被返回并且 errno 将被适本地设置。 puts如果所有输出都已成功发送到输出流,函数只会返回成功。

至于其他函数,它们包含类似的注释,说明当它们成功或失败时会发生什么。如果一个函数可以部分成功,比如the fwrite function它会说一些类似的话:

The number of objects written successfully, which may be less than count if an error occurs.

关于c - stdio 函数如何处理部分成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36840084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com