Linux: support for file operations

Can anyone have a good source for all the available file operations like fopen, fread, mkdir, etc. When I go through the files in Linux files, most of the pages explain to me what the file system hierarchy looks like.

+2


source to share


5 answers


The functions you are asking for do indeed fall into several categories: file stream I / O ( fopen

, fread

etc.), low level I / O file descriptor ( open

, read

etc.), and file system / directory management ( chown

, mkdir

etc.).

For an overview of the file stream I / O functions, see man stdio

.

For a google search try "posix file api" instead of "linux file operations".



You can also check the GNU C Libary Manual :

+5


source


I'm not sure if this helps, but this is straight from the kernel source:

struct file_operations {
    struct module *owner;
    loff_t (*llseek) (struct file *, loff_t, int);
    ssize_t (*read) (struct file *, char *, size_t, loff_t *);
    ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
    int (*readdir) (struct file *, void *, filldir_t);
    unsigned int (*poll) (struct file *, struct poll_table_struct *);
    int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
    int (*mmap) (struct file *, struct vm_area_struct *);
    int (*open) (struct inode *, struct file *);
    int (*flush) (struct file *);
    int (*release) (struct inode *, struct file *);
    int (*fsync) (struct file *, struct dentry *, int datasync);
    int (*fasync) (int, struct file *, int);
    int (*lock) (struct file *, int, struct file_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 *);
    ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
    unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
};

      



Filesystems usually register all of their implementations for these callbacks.

+3


source


Yep - use the man pages. man fopen

, man fread

, man mkdir

Etc. describe the use of these functions. Many man pages also have a See Also section, which will direct you to man pages for related functions, like the primitive Wikipedia. :)

+1


source


There are several file operation APIs at different levels of the stack, for example. POSIX API, Standard C AP I, Linux VFS API (as Jeremy mentioned), and FUSE API . All APIs do more or less the same thing, but the details are very different.

These two APIs are the most important for the average user.

Good book on "Advanced UNIX Programming" by Stevens and Rago

+1


source


use man 2 open

and man 2 mkdir

. at the bottom of this page reference is the name of the corresponding command.

Alternatively, if you are looking for a viewable version of these man pages, you can try here

0


source







All Articles