Chapter 2. Managing procfs entries
Prev |  | Next

## Chapter 2. Managing procfs entries

This chapter describes the functions that various kernel components use to populate the procfs with files, symlinks, device nodes, and directories.

A minor note before we start: if you want to use any of the procfs functions, be sure to include the correct header file! This should be one of the first lines in your code:

    #include <linux/proc_fs.h>

## Creating a regular file

`struct proc_dir_entry* create_proc_entry(` | const char* | name,
| mode_t | mode,
| struct proc_dir_entry* | parent`)`;

This function creates a regular file with the name `name`, file mode `mode` in the directory `parent`. To create a file in the root of the procfs, use `NULL` as `parent` parameter. When successful, the function will return a pointer to the freshly created struct proc_dir_entry; otherwise it will return `NULL`. Chapter 3, Communicating with userland describes how to do something useful with regular files.

Note that it is specifically supported that you can pass a path that spans multiple directories. For example `create_proc_entry`(`"drivers/via0/info"`) will create the `via0` directory if necessary, with standard `0755` permissions.

If you only want to be able to read the file, the function `create_proc_read_entry` described in the section called “Convenience functions” may be used to create and initialise the procfs entry in one single call.

Prev |  | Next
Chapter 1. Introduction | Home | Creating a symlink