标准C 中命令行输入流判断?

willsort 2003-05-08 02:23:58
前些日子,作命令行相关功能的探索,遇到一个问题——如何判断标准输入流有字符流入?

既从检测是否有字符通过管道流入标准输入流,检测的不是某个字符,而是是否流入。

实质上,我是想检测用户在命令行是否通过管道字符重定向了输入流。比如如下的两种状况,程序的走向应该是不同的:

1.exec < file
2.exec

也许IO类函数可以解决问题,但绝对不是好办法,以前曾隐约记得有个程序中利用一个生僻的标准库函数做到了这一点,十分简单。但现在,我找遍了标准库也未能重现这个方法。

不知各位高手有何办法?
...全文
158 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
willsort 2003-05-12
  • 打赏
  • 举报
回复
Re ghtsao(月之暗面):

这几天太忙,没时间回复,深感抱歉!

看了你所说的方法,我们可以探讨一下可行性:

首先,getCommandLine()时那里定义的函数,C标准库里没有,C++我不熟悉,也许有;

其次,命令行中的重定向信息串,在系统调入应用程序前,就已经被系统截留了(至少dos如此),也就是说,上面提到的两种状态,无论哪一种,main函数所得到的argv[]都是空值。
ghtsao 2003-05-08
  • 打赏
  • 举报
回复
我想用
GetCommandLine( );
可以取到命令行的信息,通过这个串你就可以判断是不是有重定向了。

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧