文件描述符,非负整数。当为负数时(通常是-1),代表打开/创建文件出错。
其中文件描述默认值如下:
/* Standard file descriptors. */
#define
STDIN_FILENO
0
/* Standard input. */
#define
STDOUT_FILENO
1
/* Standard output. */
#define
STDERR_FILENO
2
/* Standard error output. */
文件IO函数,通常包括 open,read,write,lseek,close这五个函数。
还有creat函数,但是现在用open已经可以完全替代creat。
creat = open + oflag(O_WRONLY|O_CREAT|O_TRUNC)
int open(const char *pathname , int oflag, mode_t mode);//其中mode_t 是unsigned int类型
打开pathname文件
其中oflag的组成:第一组必选其一,第二组任选[0-n]个。
第一组:文件的打开方式
O_RDONLY //只读
O_WRONLY //只写O_RDWR //读写
第二组:其他选项
O_APPEND //将当前偏移量指向文件末尾,否则初始值为0O_CREATO_EXCLO_TRUNCO_NOCTTYO_NONBLOCKO_DSYNCO_RSYNCO_SYNC
int close(int filedes);
关闭指定文件
off_t lseek(int filedes, off_t offset, int whence);
修改文件当前指针偏移量,成功返回执行完成后新的文件偏移量,失败返回-1;
whence取值如下:
SEEK_SET:从文件开始处(偏移量为0处);
SEEK_CUR:从当前偏移量处;
SEEK_END:从文件结尾处;
因此类似ftell函数的功能(获取当前偏移量)可以用lseek(fd, 0, SEEK_CUR);实现。
ssize_t read (int fd, void *buf, size_t nbytes);
读取描述符fd所指向文件,读取到的内容存放到buf中,读取nbytes字节。
ssize_t write (int fd, const void *buf, size_t nbytes);
向描述符fd所指向文件写入从buf中读取的数据,共写入nbytes字节。
返回值汇总:
open,成功返回非负数文件描述符,失败返回-1;
close,成功返回0,失败返回-1;
lseek,成功返回执行完成后新的文件偏移量,失败返回-1;
read,成功返回读取到的字节数,失败返回-1;
write,成功返回成功写入字节数,失败返回-1;
其他:
关闭一个文件时,还会释放该进程加在该文件上的所有记录锁。
当一个进程终止时,内核自动关闭它所有打开的文件。
分享到:
相关推荐
需要提供open/read/write/lseek/close等函数的封装函数 该类要提供数据缓存服务。 调用该类的写操作接口时,数据要首先写到缓存,然后再根据策略写到文件中。 调用该类的读操作接口时,该类能根据策略缓存读出的数据...
需要提供 open/read/write/lseek/close 等函数的封装函数 该类要提供数据缓存服务。 调用该类的写操作接口时,数据要首先写到缓存,然后再根据策略写到文件 中。 调用该类的读操作接口时,该类能根据策略缓存读出的...
需要提供open/read/write/lseek/close等函数的封装函数 该类要提供数据缓存服务。 调用该类的写操作接口时,数据要首先写到缓存,然后再根据策略写到文件中。 调用该类的读操作接口时,该类能根据策略缓存读出的数据...
Linux应用编程之lseek详解 ...write和read函数本身自带移动文件指针的功能,所以我们write了n个字节后,文件指针会自动向后移动n位。如果需要人为的随意更改文件指针,那就只能通过lseek函数了。 (5)、
主要介绍了Linux lseek函数的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这里包含文件操作的一些用法,比如open read write lseek close 还有对文件添加读取锁和写入锁的一些内容
相关函数 readdir, write, fcntl, close, lseek, readlink, fread 头文件 #include 定义函数 ssize_t read(int fd, void * buf, size_t count); 函数说明 read()会把参数fd 所指的文件传送count 个字节到buf 指针所...
本文主要讲述的是文件I/O操作的2.6.11内核版本实现,包括了主要的数据结构、宏定义和函数流程。分别讲述open,create,close,read,write,lseek系统调用。
掌握系统I/O库的使用:read/write/open/lseek/close,能分析程序案例 内核文件I/O数据结构,文件打开过程、文件关闭过程 dup和I/O重定向原理(案例分析) 文件逻辑地址、物理地址的概念 文件创建过程 一体化...
课程内容:什么是API,OS API与库API,open函数,read/write/close函数,lseek函数,进程表和文件描述符表,对文件进行共享操作,dup/dup2函数,fcntl函数
实现系统调用 creat open read write lseek(seek) close mkdir 及其它 能够将文件写入虚拟磁盘,并可完好无损地取出。 详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/125644551
本章开始讨论UNIX系统,先说明可用的文件I/O函数——打开文件、读文件、写文件等等。...然后说明不同缓存器长度对read和write函数的影响。本章所说明的函数经常被称之为不带缓存的I/O(与标准I/O 函数相对照
与ffmpeg的源代码不同的是: 它使用fcntl.h open/close/lseek/read 而不是 flose/fopen/fseeko/ftello。 它就地读取/修改/写入 mp4 文件,而不是将输出写入另一个文件。 它将被合并到nginx_http_mp4_module ,以便...
本项目是基于MINIX1.0 的文件管理... 基于c++的控制台,实现了linux的基本文件操作命令,包括ls,cd,mkdir,rm,vi等等命令,同时提供基本文件接口,包括sys_open,sys_close,sys_read,sys_write,sys_lseek等系统调用。
3.2.2 打开创建文件open()、create()函数 72 3.2.3 关闭文件close()函数 76 3.2.4 读取文件read()函数 77 3.2.5 写文件write()函数 79 3.2.6 文件偏移lseek()函数 80 3.2.7 获得文件状态fstat()函数 83 ...
3.2.2 打开创建文件open()、create()函数 72 3.2.3 关闭文件close()函数 76 3.2.4 读取文件read()函数 77 3.2.5 写文件write()函数 79 3.2.6 文件偏移lseek()函数 80 3.2.7 获得文件状态fstat()函数 83 ...
3.2.2 打开创建文件open()、create()函数 72 3.2.3 关闭文件close()函数 76 3.2.4 读取文件read()函数 77 3.2.5 写文件write()函数 79 3.2.6 文件偏移lseek()函数 80 3.2.7 获得文件状态fstat()函数 83 ...
f_open - 打开/创建一个文件f_close - 关闭一个文件 f_read - 读文件f_write - 写文件 f_lseek - 移动文件读/写指针 f_truncate - 截断文件 f_sync - 冲洗缓冲数据 Flush Cached Data f_opendir - 打开一个目录 f_...
3. open/close 4. read/write 5. lseek 6. fcntl 7. ioctl 8. mmap 29. 文件系统 1. 引言 2. ext2文件系统 2.1. 总体存储布局 2.2. 实例剖析 2.3. 数据块寻址 2.4. 文件和目录操作的系统函数 3. VFS 3.1. 内核数据...