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
linux filesystems


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 :

  • Stream I / O
  • Low-level I / O
  • Filesystem interface
+5


source to share


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 to share


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 to share


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.

  • fopen and fread are members of standard C (stream) file operations. Links: GNU Documentation
  • mkdir is a member of the POSIX API. Links: OpenGroup Definition , GNU Documentation

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

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

+1


source to share


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 to share







All Articles
Loading...
X
Show
Funny
Dev
Pics