如何优雅地退出预期的标准差?

时间:2014-06-01 21:39:19

标签: c unix file-io command-line std

正常情况下,文本从另一个程序的stdout进入程序。

cat outExe | myExe

程序将stdin设置为FILE*指针并正确操作数据。

如果程序在没有任何stdin(即myExe <Enter>)的情况下执行,则会产生分段错误。

在调试器中,即使没有stdin,FILE *仍然有一个地址,所以检查NULL是不行的。

如何捕获此案例(程序在没有stdin输入的情况下运行)并正常退出?

当前代码:

FILE * filePointer = NULL;
filePointer = stdin;
char inputText[300];

if (fgets(inputText, sizeof(inputText), filePointer) != NULL ) //!= EOF
{
   <work with input using strchr, strncpy, >
   <looking for expected format of input>
}

在没有输入的调试器中(不确定是否是相同的测试),它会挂起fgets ...

0 个答案:

没有答案