實現 dev null的字元裝置驅動

2021-06-12 21:13:46 字數 1567 閱讀 6801

/dev/null是個黑洞裝置,它丟棄一切寫入其中的資料,空裝置通常被用於丟棄不需要的輸出流。任何寫入該裝置資料都會被丟棄掉。從這個裡面讀取資料返回空(也有人認為是讀該空裝置,直接讀到檔案尾,那就是返回-1)。將一些不用內容經常傳送給這個裝置,丟棄不需要的資料。**實現如下:

#include #include #include #include #include #ifdef config_modversions

#define modversions

#include #endif

#define device_num 0

static int dev_num = 0;

static int opennum = 0;

static int mydev_null_open(struct inode *inode, struct file *filp);

static int mydev_null_release(struct inode *inode, struct file* filp);

static ssize_t mydev_null_read(struct file *file, char __user *buf, size_t count, loff_t *f_pos);

static ssize_t mydev_null_write(struct file *file, const char __user *buf, size_t count, loff_t *f_pos);

static const struct file_operations mydev_file_operations = ;

static int mydev_null_open(struct inode *inode, struct file *filp)

else

}static ssize_t mydev_null_read(struct file *file, char __user *buf, size_t count, loff_t *f_pos)

static ssize_t mydev_null_write(struct file *file, const char __user *buf, size_t count, loff_t *f_pos)

static int mydev_null_release(struct inode *inode, struct file* filp)

static int __init mydev_null_init(void)

else

}static void __exit mydev_null_exit(void)

module_author("fang xieyun");

module_license("gpl");

module_init(mydev_null_init);

module_exit(mydev_null_exit);

作業系統免驅裝置實現調研

現代作業系統免驅實現調研 例如各種印表機 數位相機 掃瞄器 攝像頭等等。只有作業系統支援的usb裝置才可以 免 驅動 其實是系統自帶了這個裝置的驅動,任何裝置沒有驅動都無法執行 例如u盤 鍵盤 滑鼠 免 驅攝像頭等等。系統沒有的裝置驅動,必須安裝。補充 如果系統沒有這種裝置的驅動,就無法實現免驅動。...

按鍵中斷的platform bus裝置和驅動 收藏

platform device include include include include 中斷 include include include include include include include include include include module author ecjtu...

Threadx 03 threadx的裝置驅動

裝置驅動包含八個基本的函式模組,driver control 驅動程式初始化並準備就緒後,該功能區域負責執行時控制。通常,執行時控制包括對基礎硬體裝置的更改。示例包括更改序列的波特率裝置或在磁碟上尋找新扇區。driver access 某些裝置驅動程式僅從單個呼叫應用程式執行緒。在這種情況下,此功能...