linux使用者核心通訊機制 proc

2021-10-05 11:41:45 字數 728 閱讀 3590

proc通訊是一種基於檔案系統的通訊:

主要步驟:

1:struct proc_dir_entry *input, *output; // proc_dir_entry定義檔案目錄結構體

2:/編寫對字元裝置檔案的讀寫操作函式/

static ssize_t mywrite(struct file *file,

const char __user *ubuf,size_t count, loff_t *ppos)

static ssize_t myread(struct file *file,

char __user *ubuf,size_t count, loff_t *ppos)

3:static struct file_operations fo_input =

; //填充file_operations結構體

static struct file_operations fo_output =

; //填充file_operations結構體

4:/在proc目錄下生成對應的裝置檔案,並和file_operations結構體繫結/

input=proc_create(「input」,0660,null,&fo_input);

output=proc_create(「output」,0660,null,&fo_output);

最後會在/proc 目錄下生成input和output檔案。

參考:

linux使用者與核心通訊方式

共享記憶體 ioctl sysfs procfs 訊息佇列 socket copy from user copy to user 以上同步通訊方式,由使用者態主動發起向核心態的通訊,核心無法主動發起通訊 netlink 非同步全雙工的通訊方式,它支援由核心態主動發起通訊,核心為netlink通訊提供...

作業系統 微核心通訊

在微核心架構下,乙個應用程式獲取系統服務通常需要通過程序間通訊的方式。mach通過兩種基本的抽象 埠和訊息,設計和實現一種間接通訊ipc。埠設計 mach將埠分為傳送者埠和接受者埠,mach的通訊不是指定的,而是傳送者從傳送埠傳送訊息,然後接收者可以從接受埠去拿訊息,傳送埠可以有多個,但接受埠只能有...

Linux核心通用鍊錶詳解

linux核心中充斥著大量的資料結構,這些資料結構很多都是使用結構體來表示 如cdev結構體用於描述乙個字元裝置,再如task struct結構體,是我們所說的程序控制塊pcb,用於描述乙個程序的所有資訊。追尋核心原始碼我們會發現很多都是表示裝置的結構體中都有list head這樣的字段,沒錯這就是...