读取文件到标准的解析器

时间:2013-10-17 05:24:19

标签: c shell unix dup

我正在尝试在linux环境中实现shell程序。我遇到问题的部分是在运行shell之前读取shell内部的setup_file,以执行设置环境变量之类的操作。

目前shell有一个parser_results = parse()函数,它执行“getchar”并等待用户输入某些东西到stdin,然后执行一个execute(parser_result),它使用解析器的输出执行命令。

我想要做的是阅读其中包含命令的setup_file,让解析器读入它们并给我我需要的数据结构。然后我可以运行执行。

我的问题是如何将文件内容重定向到stdin?我如何调用解析器来解析这个重定向的输入?我一直在玩dup和dup2无济于事。

1 个答案:

答案 0 :(得分:2)

简短回答(关于'如何将文件内容重定向到stdin'的问题)是“你不要”。

您修改输入函数以从给定文件流而不是stdin读取,然后从文件中读取,打开它并将该文件指针传递给您的解析代码(并在解析代码时关闭)已完成),然后当您准备好用户输入时,使用stdin而不是文件调用解析代码。这可以节省摆弄stdin