可以从c命令system()输出到文件而不是在控制台上显示吗?

时间:2015-10-30 14:02:49

标签: c linux

可以从c命令system()输出到文件而不是在控制台上显示吗?

的输出
  system ("echo 123")

我在c中使用的命令然后在Linux上运行它。它打印

123
屏幕上的

。但如果我写:

  system ("echo 123 >null")

它表示无法创建文件null。有人可以告诉我怎么称呼这个

system("echo 123")

没有在终端上显示任何内容。非常感谢任何帮助。

我写的时候收到的错误信息

system("echo 123 > null")

输出

null: cannot create 

对不起,这篇文章越来越长了。好!问题是我有自己的应用程序,我使用系统命令调用。这个应用程序在myapp / bin中,我运行的代码在另一个文件夹c_prog / mycode.x中。

现在我拥有myapp / bin以及c_prog / mycode.x的完全权限,但我遇到了同样的问题

3 个答案:

答案 0 :(得分:1)

检查您对工作目录的权利。 如果您没有写访问权限,则无法在工作目录中创建该文件,在这种情况下,sudo chmod 755 your_directory将有助于提供读写权限。

警告的话。您可以检查无法在目录中写入的原因。可能有一个很好的理由。如果目录不是你的目录,你可能需要在弄乱它之前要小心。然后还有一个建议是将您的工作目录更改为您自己创建的目录。

答案 1 :(得分:0)

我想出了问题......是的,我犯了一个愚蠢的错误。在我试图创建这个空文件的文件夹中,我已经有一个名为Folder的空文件。

傻傻的我!这就是它没有创建同名文件的原因......但Linux可以给我一个更合适的警告。

答案 2 :(得分:0)

这很容易。只需使用管道操作符将一个命令的输出重定向到第二个命令的输入(你想要' cat')。喜欢以下

system("echo 'Hello World' | cat ./file.txt");

这里命令echo给出输出" Hello World",它使用|(管道)运算符重定向,然后这是cat命令的输入,它将它写入文件./file.txt。使用前请参阅cat命令。