以root身份运行应用程序时如何获取stdio输出?

时间:2014-12-27 00:58:59

标签: c++ linux cout

我正在尝试以root身份运行我的应用程序,因为我需要访问计算机上的低级硬件。

当我运行命令时:

./application_name

...它可以工作,除了给出一个需要root的错误。但是,当我运行时:

sudo ./application_name

......我没有终端输出。

我已经测试过,每次我在Linux上以root身份运行可执行文件时,它都不会向终端打印任何内容。我该如何解决这个问题?

编辑:在某种程度上提供了一个测试用例(移动设备,因此不能打出太多内容):

sudo g++ test.cpp -o executable
sudo chmod +x executable

这适用于Debian:

./executable

这不是:

sudo ./executable

TEST.CPP:

#include <iostream>

int main() {
  std::cout << "Hello World!";
}

1 个答案:

答案 0 :(得分:1)

这种行为真的很奇怪。该应用程序的root权限应该对std输出没有影响。 例如,我做了一个简单的测试,一个&#34; hello world&#34;我在Debian OS上以root身份运行,并在终端输出。

一个简单的测试来说服自己应该有输出,就是重定向到文件。例如,sudo ./executable&gt; output.txt,你会发现一切都应该没问题。

请注意,如果您没有来自简单的&#34; hello world&#34;的输出,那就应该很奇怪。