正确/有效的方法来确定C中stdin的大小

0 c size stdin

基于我之前的问题,确定stdinstdin 的大小是否来自不同系统pipe或者terminal不同系统的正确而有效的方法是什么.

我正在做以下事情,但是,根据一些评论,它不是正确的方式,它可能或可能不适用于不同的系统.

#include <sys/stat.h>

off_t size(FILE *st_in) {
    struct stat st;
    if (fstat(fileno(st_in), &st) == 0)
        return st.st_size;
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

pmg*_*pmg 11

你不能.
想象一下stdin就像一个水龙头.

您要问的是"水龙头中有多少水"?:-)