2013-10-31 82 views
0

我带命令提示符的特点正与一个简单的程序来生成C.这里的文本文件是程序:为什么这个程序不能在C中使用OS重定向命令?

#include <stdio.h> 

int main(void) 
{ 
    char buf[80]; 

    fgets(buf, 30, stdin); 
    printf("the input was %s\n", buf); 
    return 0; 
} 

我的编程书籍是想展示如何在命令提示符下,使文字玩来自程序的文件,并指示键入单词“重定向”,然后键入'>',然后用'.txt'键入程序名称。如下图所示:

redirect> programname.txt 

现在,这是生成桌面上的文件“programname.txt”,但它是空的。本书声称配方应该允许我输入一个字符串(如程序设计的那样),并且该字符串将位于生成的programname.txt文件中。此外,命令行中还有一个警告:“未被识别为内部或外部命令”。我以前有过这个schpill,但是文本文件生成工作,因为它生成了.txt文件。我在这里错过了什么,这个程序按预期工作?

+5

这听起来像你没有运行你的程序。我非常怀疑'重定向'在你的道路上。尝试'./redirect> programname.txt'。 –

回答

0

在shell中执行输出重定向的常用方法是使用> filename,但不是redirect,它与您说的相反。 >之前的内容是要重定向的命令。

所以,让我们说您编译程序,并将其保存为foo在当前目录(例如cc -o foo myprogram.c)。在这种情况下,可以说其输出重定向:

./foo > filename.txt 
1

你似乎由事实混淆,这是不是你的程序,但之前甚至尝试创建文件programname.txt来运行你的程序。

第一次成功并创建了一个空文件后,后者可能会失败,因为在PATH中没有命令redirect,或者在shell中存在内置的内存,就像已经提出的那样。

相关问题