我正在尝试以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!";
}
答案 0 :(得分:1)
这种行为真的很奇怪。该应用程序的root权限应该对std输出没有影响。 例如,我做了一个简单的测试,一个&#34; hello world&#34;我在Debian OS上以root身份运行,并在终端输出。
一个简单的测试来说服自己应该有输出,就是重定向到文件。例如,sudo ./executable&gt; output.txt,你会发现一切都应该没问题。
请注意,如果您没有来自简单的&#34; hello world&#34;的输出,那就应该很奇怪。