以 root 身份运行应用程序时如何获取标准输出
How can I get stdio output when running application as root?
我正在尝试以root身份运行我的应用程序,因为我需要访问计算机上的低级硬件。
当我运行命令时:
./application_name
。它可以工作,但给出一个需要root的错误。但是,当我运行这个时:
sudo ./application_name
。我没有得到终端输出。
我已经测试过,每次我以 root 身份在 Linux 上运行可执行文件时,它都不会将任何内容打印到终端。我该如何解决这个问题?
编辑:提供了一些测试用例(移动,所以不能打出太多):
sudo g++ test.cpp -o executable
sudo chmod +x executable
这适用于 Debian:
./executable
这不会:
sudo ./executable
测试.cpp:
#include <iostream>
int main() {
std::cout << "Hello World!";
}
这种行为真的很奇怪。该应用程序的根权限应该不会影响 std 输出。例如,我做了一个简单的测试,一个"hello world",我在 Debian OS 上以 root 身份运行,并在终端中有输出。
说服自己应该有输出的一个简单的测试是重定向到文件。例如 sudo ./executable>输出.txt你会看到一切都应该没问题。
请注意,如果您没有来自简单"hello world"的输出,那应该很奇怪。
相关文章:
- 捕获标准输出以压缩并使用 CTRL-C 中断会给出损坏的 zip 文件
- 我需要帮助在一个类中输入两个字符串并获取其输出
- 使用提升过程获取 shell 命令的标准输出
- 将标准输出重定向到ostream
- 如何使用 c++ libboost 运行进程并获取其输出?
- 从用户获取输入/输出
- 如何在C++中执行命令并获取命令的返回代码标准输出和标准
- 在程序执行期间从标准输出重定向到自定义流
- 标准输出C++意外行为
- 防止 qDebug() 写入标准输出
- C++ - <<运算符重载,链表 - 地址而不是标准输出
- 有没有办法知道C++中将打印到标准输出的大小?
- 最后推迟标准输出
- 得到~对标准输出没有回应~在黑客排名问题上
- 获取标准::未来<T>::wait_for的经过时间
- Win32 GUI C(++) 应用将标准输出和标准输出重定向到磁盘上的同一文件
- 创建子过程并从中获取实时输出.(欢迎跨平面解决方案)
- 从txt文件中获取char并在标准输出C++上进行编写
- 以 root 身份运行应用程序时如何获取标准输出
- 从标准输出(c++)中获取信息