从控制台打印到文件
我正在 Linux 上用 C 语言编写一个程序,但无法使用 fprintf
打印到文件。我可以使用 printf 在控制台中打印。如何获取控制台输出并将其写入文件。
我尝试了 printf("echowhatever>>file.txt");
但我怀疑它没有运行。
谢谢
I am writing a program on Linux in C where I cannot use fprintf
to print to a file. I can use printf
to print in the console though. How can I take the console output and write it to a file.
I tried printf("echo whatever >> file.txt");
but as I suspected it doesn't run.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
运行程序时,附加
> file.txt
到它应该可以工作。<代码>./程序> file.txt
IIRC,将 STDOUT 重新路由到文件。
When running the program, append
> file.txt
to it should work../program > file.txt
IIRC, re-routes the STDOUT to the file.
您正在尝试让程序输出一些文本,并让 shell 将输出评估为命令。
这是不寻常的,通常会将生成文本的职责分离给程序,然后让 shell 将该输出重定向到一个文件:
foo.c contains:
然后运行您的程序并将标准输出重定向到您喜欢的任何位置:
You're trying to get your program to output some text and for the shell evaluate the output as a command.
This is unusual, one would normally separate the responsibilities of generating the text to the program, then let the shell redirect that output to a file:
foo.c contains:
Then run your program and redirect standard output to wherever you like:
像这样编译并运行你的程序
这会将你所有的
printf()
“推送”到lala.txt
Compile and run your program like that
This will "push" all your
printf()
's tolala.txt
您可以按如下方式
freopen
或dup2
:You can
freopen
ordup2
as follows:您可以
freopen
stdout
流。You can
freopen
thestdout
stream.