迅為乾貨 C程式呼叫shell

2021-10-24 23:55:17 字數 1435 閱讀 7293

本節介紹的是在 linux 系統環境下 linux-c 呼叫 shell 命令控制gpio輸入輸出步驟。shell 作為linux 作業系統的外殼,為使用者提供使用作業系統的介面。它是命令語言、命令解釋程式及程式語言的統稱,它解釋由使用者輸入的命令並且把它們送到核心。

使用shell命令直接操作/sys/下的gpio節點,首先在imx6ull-14x14-evk.dts注釋掉裝置樹的 led和按鍵功能,led引腳為gpio0_3,key引腳為gpio1_18。

在程式中通過shell命令讀取按鍵值和控制led燈。

01通過popen執行shell命令

popen和pclose函式實現的功能是建立乙個管道,用來連線到另乙個程序,然後讀那個程序的輸出或向它傳送輸入,具體操作是fork乙個子程序,exec乙個shell執行命令。

02填寫shell命令,設定引腳狀態

03控制led

交叉編譯arm-linux-gnueabihf-gcc -o led shellgpio.c ,將led檔案拷貝到開發板。

測試可看到開發板的燈在閃爍,終端有列印資訊:

04讀取按鍵值

編譯後測試:

迅為IMX6ULL開發板C程式呼叫shell

本章節介紹的是在 linux 系統環境下 linux c 呼叫 shell 命令控制gpio輸入輸出步驟。shell 作為linux 作業系統的外殼,為使用者提供使用作業系統的介面。它是命令語言 命令解釋程式及程式語言的統稱,它解釋由使用者輸入的命令並且把它們送到核心。使用shell命令直接操作 s...

建立動態庫 迅為乾貨 靜態庫和動態庫的製作和使用

因為我們在寫 的時候,不可能每個 都要重新開始寫,我們可以使用別人寫好的,成熟的 所以,庫的存在就變得非常有意義。linux的下的庫主要有倆種,乙個是動態庫,乙個是靜態庫。1簡介將乙個程式編譯成可執行程式要經過預編譯,編譯,彙編,和鏈結這個幾個步驟,而動態庫和靜態庫的主要區別就是在鏈結階段怎麼處理這...

程式實現呼叫迅雷 以C 為例

1.首先匯入dll 新增引用 com thunderagent 1.0 type library 前提是已安裝迅雷 或者c program files thunder network thunder comdlls thunderagent now.dll 路徑可能有所不同 2.thunderage...