一、文件描写叙述符

对于内核。通过文件描写叙述符来管理文件。什么是文件描写叙述符?

在unix中,用open或者create建立几个文件时候,内核向进程返回一个整数,用来记录此文件。

以后对文件进行操作的时候。就用此文件描写叙述符做引用。

二、open函数

open函数用于建立一个文件,函数返回文件描写叙述符。

[cpp] view plaincopy
  1. #include <fcntl.h>
  2. int open(const char *pathname, int flag);
  3. int open(const char *pathname, int flag, mode_t mode);//仅仅有新创建文件时才会使用该函数
  4. //返回值,假设成功返回文件描写叙述符。假设出错返回-1
使用open返回的文件描写叙述符作为參数传递给write或read。依照惯例,UNIX中文件描写叙述符0与标准输入相关联,文件描写叙述
符1与标准输出相关联,文件描写叙述符2与标准出错输出相关联。

按照POSIX标准,0、1、2通常被替换成符号常量STDIN_FILENO、
STDOUT_FILENO、STDERR_FILENO(定义在头文件unistd.h中)。

文件描写叙述符的范围为0~OPEN_MAX。
pathname为文件的绝对路径或相对路径。

flag用于指定文件的打开/创建模式,这3个常量定义在fcntl.h中。这3个參数是必选的,并且仅仅能选择一个:

O_RDONLY       仅仅读模式

O_WRONLY      仅仅写模式
O_RDWR           读写模式

转载于:https://www.cnblogs.com/liguangsunls/p/6912347.html

unix环境高级编程——文件i/o相关推荐

  1. UNIX 环境高级编程 文件和目录

    函数stat , fstat , fstatat , lstat stat函数返回与此文件有关的信息结构. fstat函数使用已打开的文件描述符(而stat则使用文件名) fstatat函数 为一个相 ...

  2. unix环境高级编程-文件和目录(1)

    stat.fstat和lstat函数: 一旦给出pathname,stat函数返回与此函数命令文件有关的信息结构.第二个参数buf是指针,指向一个我们必须提供的结构体.该结构体的基本结构是: 文件类型 ...

  3. UNIX环境高级编程 文件I/O

    大多数文件I/O 只需要用到 5个函数 :    open , read , write , lseek , close 本章描述的都是不带缓冲的I/O(read write 都调用内核中的一个系统调 ...

  4. apue.h头文件(UNIX环境高级编程)

    相信非常多初学<UNIX环境高级编程>的朋友都会遇到一个问题,执行里面的实例(download: http://www.apuebook.com/ )时就出现故障,提示 "错误: ...

  5. UNIX环境高级编程笔记之文件I/O

    一.总结 在写之前,先唠几句,<UNIX环境高级编程>,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是"哇"这种很吃惊的表情.其实大概三年前,那会 ...

  6. (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  7. 文件和目录(二)--unix环境高级编程读书笔记

    在linux中,文件的相关信息都记录在stat这个结构体中,文件长度是记录在stat的st_size成员中.对于普通文件,其长度可以为0,目录的长度一般为1024的倍数,这与linux文件系统中blo ...

  8. UNIX环境高级编程(第三版 源码及编译好的静态库文件)

    UNIX环境高级编程(第三版) 源码 及 库文件 链接: https://pan.baidu.com/s/1tPY17lWNDEbzkOwZaRUUNg 提取码: 1024 复制这段内容后打开百度网盘 ...

  9. unix环境高级编程(上)-文件篇

    目录 前言 unix基础知识 unix标准化和实现 unix提供的文件IO 文件和目录 标准IO 系统数据文件 前言 笔者将<unix环境高级编程>主要内容总结为三篇:文件篇,进程篇,高级 ...

最新文章

  1. PHP中include()与require()的区别说明
  2. 一周内被程序员疯转5.6W次,最终被大厂封杀!
  3. Selenium之定位及切换frame(iframe)
  4. 【技术史】数据中台的前世今生
  5. css新单位 vw , vh
  6. 翻译:与包括索引列:5级阶梯SQL Server索引
  7. PCA原理及代码实现
  8. 用Python实现一个动物识别专家系统--人工智能
  9. 网页打开html无法编辑,电脑浏览器网页无法输入文字该怎么办?
  10. 多功能智慧(灯杆)路灯项目建设背景及现实的意义主要体现在哪几个方面?
  11. 基于51单片机的智能温控风扇(程序+仿真+原理图)
  12. php实现公众号支付demo,PHP微信公众号支付demo
  13. 带左右箭头的图片轮播
  14. [CCC2022 J2] Fergusonball Ratings
  15. 云计算、大数据和人工智的区别和联系
  16. CJ Affiliate如何收款?多号操作怎么避免关联?
  17. 车载OS的战场:万亿美金入口之争
  18. 从游戏中理解Java特性,我悟了!
  19. 对比了百度统计和CNZZ后,我最终选择了51LA
  20. USACO 1.1.4Broken Necklace 破碎的项链

热门文章

  1. C# OracleParameter 传参 实例
  2. 技能CDDemo(点击鼠标左键实现技能界面旋转)
  3. PGA Usage Larger than PGA_AGGREGATE_TARGET setting?
  4. nyist 303 序号互换
  5. HTML 代码常用技巧
  6. 自然语言处理之jieba分词
  7. C#实现发送手机短信
  8. struts2文件下载出现Can not find a java.io.InputStream with the name的错误
  9. JavaScript系列-----对象基于哈希存储(Key,Value之Key篇) (1)
  10. [Java] HashMap遍历的两种方式