文章目录

  • Open 介绍
    • 参数
  • 案例
    • 输出结果:
    • 文件描述符fd

Open 介绍

 Open函数用来打开一个文件,建立一个文件描述符到文件路径的映射,建立文件标识。
 open函数原型如下所示:

#include <fcntl.h>
int open(const char *pathname, int oflag,...);

参数

  • pathname是要打开或者创建的文件路径名,可以是绝对路径也可以是相对路径。
  • oflag:打开文件时,可以传入多个参数选项,用下面的一个或多个进行“或”运算,构成flags; 其中:O_RDONLY—只读打开、 Q_WRONLY—只写打开、O_RDWR—读、写打开 ;这三个变量只能指定一个 ;O_CREAT—若文件不存在,则创建它。需要使用mode(文件权限标志)选项,来指明新文件的访问权限 ;O_APPEND—追加写
#define O_RDONLY             00     /*只读方式打开*/
#define O_WRONLY             01     /*只写方式打开*/
#define O_RDWR               02     /*读写方式打开*/
  • 返回值:成功则返回打开文件的描述符(通常为3),失败则返回-1。
    文件标识符0、1、2分别代表标准输入、标准输出和标准错误输出,分别用常量STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO代替。

案例

#include <fcntl.h>
using namespace std;int main()
{off_t fd;fd=open("1.txt",O_RDONLY);cout<<fd<<endl;return 0;
}

输出结果:

3

文件描述符fd

 文件描述符在形式上 是一个非负整数。它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕文件描述符展开。

  • 习惯上,标准输入(standard input)的文件描述符是 0,标准输出(standard output)是 1,标准错误(standard error)是 2。
  • 0,1,2对应的物理设备一一般是:键盘,显示器,显示器。
  • 所以通常当我们成功打开文件时,返回的fd都是从3起。

Linux下Open函数相关推荐

  1. linux下syscall函数,SYS_gettid,SYS_tgkill

    出处:http://blog.chinaunix.net/uid-28458801-id-4630215.html linux下syscall函数,SYS_gettid,SYS_tgkill 2014 ...

  2. linux下system函数的深入理解

    这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为 ...

  3. Linux下curses函数库的详细介绍

    Linux下curses函数库的详细介绍 curses库介绍 安装 curses库函数介绍 初始化和重置函数 管理屏幕的函数 输出到屏幕 从屏幕读取 清除屏幕 移动光标 字符属性 管理键盘的函数 键盘 ...

  4. linux下readlink函数详解

    linux下readlink函数详解 相关函数: stat, lstat, symlink 表头文件: #include <unistd.h> 定义函数:int  readlink(con ...

  5. linux 纪元时间转换,[转]Linux下时间函数time gettimeofday

    Linux下时间函数time & gettimeofday UNIX及Linux的时间系统是由「新纪元时间」Epoch开始计算起,单位为秒.Epoch是指定为1970年1月1日凌晨零点零分零秒 ...

  6. Linux下connect函数 阻塞 与 非阻塞 问题

    一.概述 linux系统下,connect函数是阻塞的,阻塞时间的长度与系统相关.而如果把套接字设置成非阻塞,调用connect函数时会报错Operation now in progress,且err ...

  7. Linux下select函数实现的聊天服务器

    转载: http://blog.csdn.net/microtong/article/details/4989902 Linux下select函数实现的聊天服务器  佟强 http://blog.cs ...

  8. LINUX下poll函数用法

    LINUX下poll函数用法 文章目录 LINUX下poll函数用法 一.函数介绍 二.使用 1. 一.函数介绍 int poll(struct pollfd *fds, nfds_t nfds, i ...

  9. linux 函数返回string,linux 下c函数strcmp的返回值疑问?

    linux 下c函数strcmp的返回值疑问? strcmp函数解释: NAME strcmp, strncmp - compare two strings SYNOPSIS #include int ...

  10. Linux下time函数

    Linux下time函数都在time.h头文件中. 1.头文件 和时间有关的头文件有以下几个: time.h sys/time.h sys/times.h sys/timeb.h sys/timex. ...

最新文章

  1. 第四次作业 (日期和jieba库的运用)
  2. python repl_asyncio REPL(Python 3.8)
  3. openstack之neutron linuxbridge + vlan组网
  4. 未正确安装master data services_GP数据库安装
  5. 光端机按照技术类型及接口种类是怎么分类的?
  6. 从线上慢sql看explain关键字
  7. 利用MMCM IP核产生用户时钟
  8. HOWTO:FirePHP乱码问题解决
  9. Haproxy实现负载均衡及相关配置(添加日志、设定自动刷新时间、控制访问、动静分离、读写分离)
  10. python是干什么用的-python中upper是做什么用的
  11. android版chrome为什么没有扫,android – 无法使用谷歌条码扫描仪
  12. charles iPhone抓包步骤 Fiddler
  13. 2019 年,数据分析师怎样才能更抢手?
  14. 计算机主机装机注意,自己组装电脑要注意什么?DIY老司机教你装机注意事项 (全文)...
  15. STM32CubeMX配置DCMI+DMA之OV2640
  16. 装修后才知道的79件事,无数网友真金白银砸出来...
  17. windows10下Docker部署Kurento
  18. 【机器视觉】移动机器人控制软件的设计与实现
  19. 为什么写论文时一定要引用论文?
  20. 使用Flex实现常见布局的思路总结

热门文章

  1. 世界杯的历史也是一部科技史
  2. Windows Overview
  3. 一起来玩玩WebGL--第一弹
  4. 为什么说Vue是单页面应用呢?
  5. Soul(灵魂)匹配脚本、autojs、按键精灵~
  6. canal安装最详细教程
  7. catkin_make问题: The build space at ‘/home/lufeng/Documents/test/catkin_ws/build’ was previously built
  8. 大学物理复习2-动量守恒定律的应用+质心运动定理
  9. 【LOJ】apio2016烟火表演-可并堆凸包
  10. 【Linux】文件与路径