一、linux上向系統申請裝置號的時候分為兩種情況
在已知裝置號的情況使用如下函式
函式原型如下:
int register_chrdev_region(dev_t from, unsigned count, const char *name);
from:裝置號
count:是你請求的連續裝置數量.
name:裝置的名字
,他會出現在sysfs中
缺點:裝置號有可能會衝突
2. 在裝置號未知的情況下使用如下函式:
函式原型如下:
int alloc_chrdev_region(dev_t *from, unsigned baseminor, unsigned count, const char *name);
from:裝置號
baseminor:次裝置號
count:是你請求的連續裝置數量.
name:裝置的名字
,他會出現在sysfs中
使用該函式會向系統動態申請未被占用的裝置號。函式呼叫成功之後,會把得到的裝置號放入第乙個引數from中。
優點:它會自動避開裝置號重複的衝突。
二、裝置號的釋放
釋放裝置號統一使用下面函式:
void unregister_chrdev_region(dev_t from, unsigned count);
from:裝置號
count:是你請求的連續裝置數量.
示例:
int ret;
static int globalmem_major = 250;
dev_t devno = mkdev(globalmem_major, 0);
/*該函式會根據主裝置號和次裝置號生成總裝置號*/
if (globalmem_major) else
函式的輸入變數為兩個指標時要注意兩個指標是否相等
下面時交換兩個數的函式 void swap int a,int b 當傳入的a和b的位址不是同乙個位址的情況下,函式正常工作 int a 1 int b 2 swap a,b 得到a 2,b 1當傳入的a和b的位址是同乙個位址的情況下,函式不正常工作 int a 1 swap a,a 得到a 0為什...
MySql計算兩個日期的時間差函式
第一種 timestampdiff函式,需要傳入三個引數,第乙個是比較的型別,可以比較frac second second minute hour day week month quarter或 year幾種型別,第二個和第三個引數是待比較的兩個時間,比較是後乙個時間減前乙個時間,具體用法如下 se...
MySql計算兩個日期的時間差函式
mysql計算兩個日期時間的差函式 第一種 timestampdiff函式,需要傳入三個引數,第乙個是比較的型別,可以比較frac second second minute hour day week month quarter或 year幾種型別,第二個和第三個引數是待比較的兩個時間,比較是後乙個...