簡體   English   中英

如何在shell腳本中調用ioctl?

[英]How to invoke ioctl in shell script?

我正在嘗試在只有bash和原始基礎實用程序的系統上執行ioctl調用。

有沒有辦法在shell腳本中的/ dev中執行任意ioctl命令(如果params只是整數),而不編寫C / perl / python程序? 像“magic_ioctl / dev / console 30 1 2”這樣的東西會調用“ioctl(open(”/ dev / console“),30,1,2);”。

我正是為此目的編寫了ioctl工具: https//github.com/jerome-pouiller/ioctl

目前,不可能將多個參數傳遞給ioctl調用。 你有一個例子,它會有用嗎?

如果你想調用ioctl(open("/dev/console"), 30, 1); ,你可以運行:

ioctl /dev/console 30 -v 1

但是,對於大多數ioctl,您希望分配一個緩沖區並在ioctl調用的參數中將指針傳遞給此緩沖區。 在這種情況下,只需忘記-v ioctl將從/向標准輸入/輸出讀/寫緩沖區內容。 ioctl嘗試從ioctl數字猜測緩沖區大小和方向。

最好的是: ioctl了解許多(約2200個)ioctl符號名稱。 因此你可以打電話:

ioctl /dev/video0 VIDIOC_QUERYCAP > video_caps

為什么拒絕perl / c / python解決方案? 你可以用perl one-liner這樣做: perl -e require "sys/ioctl.ph"; ioctl(...); perl -e require "sys/ioctl.ph"; ioctl(...);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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