簡體   English   中英

以root身份運行應用程序時如何獲得stdio輸出?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM