1. 程式人生 > >核心空間和使用者空間的資料交換

核心空間和使用者空間的資料交換



對裝置的讀操作是將資料從Linux的核心空間複製到使用者空間;

寫操作是將資料從Linux的使用者空間複製到核心空間。

因為Linux的核心空間和使用者空間是隔離的,所以要實現資料的拷貝就要使用專門的核心函式。可以在核心空間和使用者空間進行資料複製的函式在<asm/uaccess.h>中定義,其原型如下:

unsigned longcopy_to_user(void_usr *to,const void *from,unsigned long count);

unsigned longcopy_from_user(void *to,const void_usr *from,unsigned long count);

copy_to_user()函式將資料從核心空間複製到使用者空間,copy_from_user()函式將資料從使用者空間複製到核心空間。

引數from是資料來源的緩衝區地址,to是資料目的地的緩衝地址,count是要進行復制的位元組數。