如何使用C代码将数据传递给stdin?

时间:2014-03-19 13:28:19

标签: c stdin

我有一个API函数,它生成一个新的stdin输入诅咒,如>> 。因为我已经以数组的形式在内存中有很多数据,我怎样才能将数据传递给>>用C代码?例如,getdatafromstdin是一个API函数,我不知道细节:

getdatafromstdin;
>>

这是正常形式,但我不希望通过键盘输入数据,我想将数据传递给>>通过C代码。像

getdatafromstdin;
passdatatostdin;

1 个答案:

答案 0 :(得分:0)

问题中的信息非常少,无法给出正确的答案。一种选择是修复getdatafromstdin以获取FILE *作为参数而不是假设stdin,因此您可以提供所需的FILE *。另一种选择是将程序分为两部分。一个生成输入数据,另一个使用getdatafromstdin,然后管道两个。

一个易于添加的选项,但是如果你不想做其他选择则有点作弊。您可以将要提供给stdin的数据写入文件,然后使用freopen重新打开stdin以从该文件中读取。然后调用getdatafromstdin将从该文件中读取。

如果您在stdinfreopen中进行管道传输,那么稍后使用终端并非易事。所以我建议使用第一个选项(修复getdatafromstdin函数以获取FILE *参数),但我的猜测是它不是您自己的API。