當前位置:學者齋 >

計算機 >操作系統 >

Linux系統調用設備的ioctl函數

Linux系統調用設備的ioctl函數

命令行調用設備的ioctl函數。在Linux系統中,似乎對設備的直接操作只有ioctl函數了。他接受的參數不是太多,而且都是一一對應的。

Linux系統調用設備的ioctl函數

blockdev - 從命令行調用區塊設備控制程序

blockdev [options] commands devices

blockdev 工具允許從命令行調用區塊設備控制程序。

–setro 設置設備為只讀

–getro 讀取設備是否為只讀(成功為1,0則為可讀寫)

–setrw 設置設別為可讀寫

–getss 打印設備的扇區大小,通常是512

–getsize 打印設別的'容量,按照一個扇區512個字節計算

–setra N 設置預讀扇區(512字節)為N個 readahead to N 512-byte sectors.

–getra 打印readahead(預讀扇區)

–flushbufs 刷新緩衝

–rereadpt 重讀分區表。

覺得–setro,setrw比較有用,這個mount -o ro(rw)是有區別的,mount是在文件系統這個級別上對某個分區掛載為只讀或可讀寫。而blockdev則是在設別這個級別上設置為只讀和可讀寫。

看下面的命令輸出結果就一目瞭然了。

代碼如下:

[root@lancy ~]# blockdev –setro /dev/hda4

[root@lancy ~]# blockdev –getro /dev/hda4

1

[root@lancy ~]# mount /dev/hda4 /misc -o rw

mount: block device /dev/hda4 is write-protected, mounting read-only

[root@lancy ~]# umount /dev/hda4

[root@lancy ~]# blockdev –setrw /dev/hda4

[root@lancy ~]# blockdev –getro /dev/hda4

[root@lancy ~]# mount /dev/hda4 /misc -o rw

[root@lancy ~]# touch /misc/one

[root@lancy ~]# umount /dev/hda4

[root@lancy ~]# mount /dev/hda4 /misc -o ro

[root@lancy ~]# rm -f /misc/one

rm: 無法刪除‘/misc/one’: 只讀文件系統

  • 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-hk/jsj/caozuo/z4mwv2.html