while( (reader=fread(array, sizeof(char), size, stdin))>0 )
当我调用一个我想模拟的函数来为自己的
fread
赋值时,我需要这种保护。对不起,令人恐惧的英语。
最佳答案
@Fritschy的回答和@Ben Voigt的评论构成了便携式解决方案。
如果您使用的是Unix / Linux /类似操作系统,则可以通过以下方式将内容实际写入stdin
中:
int p[2];
// error return checks omitted
pipe(p);
dup2(p[0], STDIN_FILENO);
FILE *stdin_writer = fdopen(p[1], "w");
现在写入
stdin_writer
。请参阅POSIX标准中的
pipe
, dup2
和 fdopen
。