在C中,我们可以使用setvbuf(...)来设置缓冲区,大小和缓冲模式。我很惊讶地发现没有人问过如何读取这些值,给定一个开放的FILE*
(例如stdout
或用户提供的)。即,如何实现“getvbuf(...)
”例程(甚至是它的一部分)?
void getvbuf(FILE* stream, char** pbuf,int* bufmode,size_t* bufsize);
答案 0 :(得分:1)
我认为它不是标准的一部分。但是,Solaris引入了一些非标准机制来查询这些属性中的一些,这些属性也可以在GNU C编译器中使用。
选中此处了解详情:https://www.gnu.org/software/libc/manual/html_node/Controlling-Buffering.html
我很想知道你想要做一个getvbuf(..)类型的用例。