一、簡介
PRoc文件系統是linux系統上的一種偽文件系統(也即虛擬文件系統),存儲的是當前內核運行狀態的一系列特殊文件,用戶可以通過這些文件查看有關系統硬件及當前正在運行進程的信息,甚至可以通過更改其中某些文件來改變內核的運行狀態。
基于/proc文件系統如上所述的特殊性,其內的文件也常被稱作虛擬文件,并具有一些獨特的特點。為了查看及使用上的方便,這些文件通常會按照相關性進行分類存儲于不同的目錄甚至子目錄中, 如/proc/scsi目錄中存儲的就是當前系統上所有SCSI設備的相關信息,/proc/N中存儲的則是系統當前正在運行的進程的相關信息,其中N為正在運行的進程(可以想象得到,在某進程結束后其相關目錄則會消失)。
二、API
http://oss.org.cn/ossdocs/gnu_linux/kernel-api/
1、基本的proc文件系統的目錄或文件的添加、刪除
struct proc_dir_entry *proc_mkdir(const char *, struct proc_dir_entry *);struct proc_dir_entry *proc_mkdir_mode(const char *name, mode_t mode, struct proc_dir_entry *parent);struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, struct proc_dir_entry *parent);struct proc_dir_entry *proc_create(const char *name, mode_t mode, struct proc_dir_entry *parent, const struct file_Operations *proc_fops)struct proc_dir_entry *proc_create_data(const char *name, mode_t mode, struct proc_dir_entry *parent, const struct file_operations *proc_fops, void *data);void remove_proc_entry(const char *name, struct proc_dir_entry *parent);
2、特殊的proc文件的添加
1)/proc/net/
struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name, struct proc_dir_entry *parent);void proc_net_remove(struct net *net, const char *name);struct proc_dir_entry *proc_net_fops_create(struct net *net, const char *name, mode_t mode, const struct file_operations *fops);
2)/proc/sys/
三、實例
http://www.mamicode.com/info-detail-96547.html
參考:http://www.chinaitlab.com/linux/administer/889804.html
新聞熱點
疑難解答