open系列是 POSIX 定义的,是UNIX系统里的system call,只能用在 POSIX 的操作系统上。使用open系列函数需要"#include <fcntl.h>".

基于文件描述符的输入输出函数:
   open:打开一个文件,并指定访问该文件的方式,调用成功后返回一个文件描述符。
   creat:打开一个文件,如果该文件不存在,则创建它,调用成功后返回一个文件描述符。
   close:关闭文件,进程对文件所加的锁全都被释放。
   read:从文件描述符对应的文件中读取数据,调用成功后返回读出的字节数。
   write:向文件描述符对应的文件中写入数据,调用成功后返回写入的字节数。
   ftruncate:把文件描述符对应的文件缩短到指定的长度,调用成功后返回0。
   lseek:在文件描述符对应的文件里把文件指针设定到指定的位置,调用成功后返回新指针的位置。
   fsync:将所有已写入文件中的数据真正写到磁盘或其他下层设备上,调用成功后返回0。
   fstat:返回文件描述符对应的文件的相关信息,把结果保存在struct stat中,调用成功后返回0。
   fchown:改变与打开文件相关联的所有者和所有组,调用成功后返回0。
   fchmod:把文件描述符对应的文件的权限位改为指定的八进制模式,调用成功后返回0。
   flock:用于向文件描述符对应的文件施加建议性锁,调用成功后返回0。
   fcntl:既能施加建议性锁也能施加强制性锁,能建立记录锁、读取锁和写入锁,调用成功后返回0。
   dup:复制文件描述符,返回没使用的文件描述符中最小的编号。
   dup2:由用户指定返回的文件描述符的值,用来重新打开或重定向一个文件描述符。
   select:同时从多个文件描述符读取数据或向多个文件描述符写入数据。
文件描述符的优点:兼容POSIX标准,许多系统调用都依赖于它。
文件描述符的缺点:不能移植到UNIX以外的系统上去,也不直观。

1)write

#include <unistd.h>

size_t write(int fildes,const void *buf,size_t nbytes);

参数说明:

fildes:与文件相对应的文件描述符,可通过调用open函数获取

buf:存放将写入文件的数据,可以是字符串,也可是其他数据。其中buf是指向字符串的指针

nbytes:需写进文件的字节数

返回值:

-1:写入失败

0:写入0个字节

x:已写入x个字节

2)read

#include <unistd.h>

size_t read(int fildes,char *buf,size_t nbytes);

参数说明:

fildes:文件描述符

buf:存放从文件中读取的数据

nbytes:希望读取的直接数

返回值:

-1:读取失败

0:读取0个字节

x:已读取x个字节

3)open

参数说明:

path:文件存放路径;
    oflags:打开方式。取值如下:

O_RDONLY:以只读方式打开,O_WRONLY:以只写方式打开,O_RDWR:以读写方式打开

oflages参数中还包括下列可选模式的组合(用按位或操作)

O_APPEND:把写入数据追加在文件的末尾

O_TRUNC:把文件长度设为0,丢弃已有的内容

O_CREAT:如果需要,就按参数mode中给出的访问模式创建文件

O_EXCL:已O_CREAT一起使用,确保调用者创建出文件

4)close
#include <unistd.h>

int close(int fildes);

参数:

fildes:文件描述符

返回:

success:0

fail:-1

oprn/read/write/close系统函数相关推荐

  1. Linux系统函数之IO函数

    技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.标准C库IO函数工作流程 IO缓冲区的作用? 大部分硬盘都是机械硬盘,读取寻道时间 ...

  2. Verilog系统函数(一) $display

    Verilog系统函数 $display 参考:FPGA篇(四)Verilog系统函数介绍($display,$fopen,$fscanf,$fwrite($fdisplay),$fclose,$ra ...

  3. Axure RP使用攻略--入门级(五)系统函数与变量

    系统函数与变量 1.变量的种类: 全局变量:可以在整个原型的任意位置调用和修改. 局部变量:仅作用于某一事件的某一动作内. 自定义变量:自行新建的全局变量. 2.axure函数 特殊变量:特殊变量其实 ...

  4. OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC

    OpenCV学习笔记(三十六)--Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加 ...

  5. Shell之系统函数和自定义函数

    一.系统函数 1.basename基本语法 basename [string / pathname][suffix] (功能描述:basename命令会删掉所有的前缀包括最后一个('/')字符,然后将 ...

  6. Shell中常用的系统函数basename和dirname

    shell编程和其他编程语言一样,有系统函数,也可以自定义函数. basename命令 basename功能: 返回完整路径最后/的部分,常用于获取文件名basename [pathname][suf ...

  7. c语言得到系统的函数,c语言系统函数(C language system function).doc

    c语言系统函数(C language system function) c语言系统函数(C language system function) Mathematical function " ...

  8. SqlServer系统函数

    SqlServer系统函数 enjoyasp.net sql server 0 Comments 发表评论 1,@@SERVERNAME 返回运行 Microsoft® SQL Server™ 的本地 ...

  9. Verilog自编函数clog2替代SV中的系统函数$clog2

    先放函数,已验证和$clog2输出一致,注意需满足输入n ≥ 1. // 返回以2为底的n的对数 function integer clog2 (input integer n); beginn = ...

最新文章

  1. 如何提升计算机内存,怎么提高电脑物理内存
  2. adam优化器再理解
  3. VMWARE错误-VirtualInfrastructure.Utils.ClientsXml的类型初始值设定项引发异常
  4. 硬盘读取不了--完美解决
  5. 3分钟让你轻松了解CRM
  6. Atitit 热更新资源管理器 自动更新管理器 功能设计
  7. 如何在通达信软件上随意画图_怎样在通达信软件中加入写字画箭头的涂画工具?...
  8. 彻底解决pycharm中用matplotlib表格绘制时图表中汉字设置
  9. 【解决】Yandex浏览器Bing搜索遭遇trovi.com劫持
  10. Android主界面退出再次进入略过欢迎面
  11. BS1022-基于React native+springboot开发服务端后台实现体育资讯类APP
  12. 投影法快速求二叉树的三种遍历
  13. Laravel防范xss攻击
  14. html自动请求favicon,浏览器默认请求的favicon.ico文件,可能带来的问题
  15. 工具推荐 10款移动界面原型设计工具
  16. NUMA与英特尔下一代Xeon处理器学习心得
  17. 单片机学习 9-直流电机实验
  18. anemometer mysql_使用Anemometer分析MySQL慢查询记录
  19. 如此悲伤,如此愉悦,如此独特
  20. 【翻译】PCI Express –信号完整性和EMI

热门文章

  1. 黑马程序员 学习毕老师java视频第14.15.16天
  2. Bootstrap做一个简单的上传文件
  3. DipTrace 4.1.0 x86 / x64原理图捕获软件
  4. 小程序 · Animation——淡入淡出动画效果
  5. 数据结构_顺序表SeqList(C++
  6. 企业如何搭建属于自己的网站?
  7. MOS管从入门到精通以及nmos和pmos D G S 判别
  8. Docker镜像的仓库(Harbor)
  9. matlab 求虚数相位角,在matlab中怎么计算其相位
  10. 阅读量超1亿!应聘要求自曝「恋爱经历」你怎么看?