[英]How can I get stdio output when running application as root?
我試圖以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!";
}
這種行為真的很奇怪。 該應用程序的根權限應不會影響std輸出。 例如,我做了一個簡單的測試,即一個“ hello world”,我以root身份在Debian OS上運行,並在終端中輸出了。
要說服自己應該獲得輸出,一個簡單的測試就是重定向到文件。 例如sudo ./executable> output.txt,您會看到一切正常。
請注意,如果沒有簡單的“ hello world”的輸出,這應該很奇怪。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.