新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > file_operations下函數(shù)詳解

file_operations下函數(shù)詳解

作者: 時間:2011-06-21 來源:網(wǎng)絡 收藏


// 刷新待處理的數(shù)據(jù),如果驅動程序沒有實現(xiàn),fsync調(diào)用將返回-EINVAL

int (*aio_fsync) (struct kiocb *, int datasync);

// 異步fsync

int (*fasync) (int, struct file *, int);

// 通知設備FASYNC標志發(fā)生變化,如果設備不支持異步通知,該字段可以為NULL

int (*lock) (struct file *, int, struct file_lock *);

// 實現(xiàn)文件鎖,設備驅動常不去實現(xiàn)此lock

ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_t *);

ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, loff_t *);

// readv和writev 分散/聚集型的讀寫操作,實現(xiàn)進行涉及多個內(nèi)存區(qū)域的單次讀或寫操作。

ssize_t (*sendfile) (struct file *, loff_t *, size_t, read_actor_t, void *);

// 實現(xiàn)sendfile調(diào)用的讀取部分,將數(shù)據(jù)從一個文件描述符移到另一個,設備驅動通常將其設置為 NULL

ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);

// 實現(xiàn)sendfile調(diào)用的另一部分,內(nèi)核調(diào)用將其數(shù)據(jù)發(fā)送到對應文件,每次一個數(shù)據(jù)頁,設備驅動通常將其設置為NULL

unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned

long);

// 在進程地址空間找到一個合適的位置,以便將底層設備中的內(nèi)存段映射到該位置。大部分驅動可將其設置為NULL

int (*check_flags)(int);

// 允許模塊檢查傳遞給fcntl(F_SETEL…)調(diào)用的標志

int (*dir_notify)(struct file *filp, unsigned long arg);

// 應用程序使用fcntl來請求目錄改變通知時,調(diào)用該方法。僅對文件系統(tǒng)有效,驅動程序不必實現(xiàn)。

int (*flock) (struct file *, int, struct file_lock *);

// 實現(xiàn)文件鎖

};

本文引用地址:http://butianyuan.cn/article/150582.htm

上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉