文件I/O
原创
©著作权归作者所有:来自51CTO博客作者ghong45的原创作品,请联系作者获取转载授权,否则将追究法律责任
当我还喜滋滋的乐道,LINUX下用C语言编程会很方便的时侯,编了几个小程序后,才发现LINUX自有一套自己的I/O函数,数值.而它们并不是ISO C的组成部分。
1文件描述符
文件描述符是一个非负整数。当打开一个现有文件或者创建一个新文件时,内核间进程返回一个文件描述符。当读或写一个文件时,使用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write
2open函数
#include<fcntl.h>
int open(const char*pathname.int oflag,...)若成功,则返回文件描述符,否则返回-1
pathname是要打开或创建的文件的名字
oflag参数可用来设置此函数的多个选项,用下列一个或多个常量进行'或'运算,构成oflag参数(这些常量定义在<fcntl.h>头文件中)
O_RDONLY只读方式
O_WRONLY只读方式
O_RDWR 读写打开
3creat函数
也可调用creat函数创建一个新文件
#include<fcontl.h>
int creat(const char*pathname.mode_t mode);若成功则返回为只写打开的文件描述符,否则返回-1,等效于:
open(pathname.O_WRONLY|O_CREAT|O_TRUNC,mode)
creat的一个不足之处的是它以只写方式打开所创建的文件,可用下列方式调用open
open(pathname,O_RDWR|O_CREAT|O_TRUNC,mode)
4close函数
#include<unstd.h>
int close(int fiedes);若成功则返回0.否则返回-1
5lseek函数
可以调用lseek显示地为一个打开的文件设置其偏移量
#include<unistd.h>
off_t lseek(int fields.off_t offset,int whence)
调用方式
off_t currpos;
currpos=lseek(fd.0,SEEK_CUR);
6read函数
#include<unistd.h>
ssize_t read(int filedes,void *buf,size_t nbytes)若成功,则返咽读到的字节数,若已到文件结尾则返回0,否则出错则返回-1
7write函数
#include<unistd.h>
ssize_t write(int filedes,const void *buf,size_t nbytes)若成功,则返回已写的字节数,否则返回-1
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
标准I/O和文件I/O的区别linux 嵌入式 缓存 系统调用 读写文件
-
[文件I/O] select
select() 函数允许我们在一组文件描述符上进行 I/O 多路复用。相关原型及相关操作宏定义如下:#in
select io 函数 linux 描述符 -
i/o 文件类总结
总结
总结 -
【Linux】Linux文件I/O
图片来源于网络,侵删。直接使用系统调用的缺点:示例:直接IO和标准方式进行对比**示例:**
linux 运维 服务器 #include 数据 -
linux 文件I/O操作
目录一、linux系统文件和文件系统1.1文件类型1.2 system函数1.3linux文件权限1.4 设置系统文件、目录
linux I/O操作 #include 文件系统 -
Python 文件I/O(1)
最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式。当一个文件对象的引用被重新
服务器 linux 运维 Python 打开文件 -
文件 I/O 问题
文件 I/O 问题:(1)对不存在的或者错误的文件进行操作吗?(2)文件以不正确的方式打开吗?(3)文件结束判断不正确吗?(4)没有正确地关闭文件吗?
c++ 数组 #include 随机数 i++ -
3.3 文件I/O
错误的解决方法请参考:http://liangruijun.blog.51cto.com/3061169/673776 3.3.2 访问手机中的存储文件夹 3.3.3 读取assets中的文件
android ide java xml bundle