我有一个API函数,它生成一个新的stdin输入诅咒,如>> 。因为我已经以数组的形式在内存中有很多数据,我怎样才能将数据传递给>>用C代码?例如,getdatafromstdin是一个API函数,我不知道细节:
getdatafromstdin;
>>
这是正常形式,但我不希望通过键盘输入数据,我想将数据传递给>>通过C代码。像
getdatafromstdin;
passdatatostdin;
答案 0 :(得分:0)
问题中的信息非常少,无法给出正确的答案。一种选择是修复getdatafromstdin
以获取FILE *
作为参数而不是假设stdin
,因此您可以提供所需的FILE *
。另一种选择是将程序分为两部分。一个生成输入数据,另一个使用getdatafromstdin
,然后管道两个。
一个易于添加的选项,但是如果你不想做其他选择则有点作弊。您可以将要提供给stdin
的数据写入文件,然后使用freopen
重新打开stdin
以从该文件中读取。然后调用getdatafromstdin
将从该文件中读取。
如果您在stdin
或freopen
中进行管道传输,那么稍后使用终端并非易事。所以我建议使用第一个选项(修复getdatafromstdin
函数以获取FILE *
参数),但我的猜测是它不是您自己的API。