文件描述符

  • pcb:结构体
  • 一个进程有一个文件描述符:1024
  • 文件描述符:寻找磁盘文件

函数open和openat

函数原型:

include<sys/stst.h>
#include<fcntl.h>int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);int openat(int fd, const char *pathname, int flags);
int openat(int fd, const char *pathname, int flags, mode_t mode);函数的返回值:若成功,返回文件描述符; 若出错,返回-1

flag参数:必选项

O_RDONLY 只读打开
O_WRONLY 只写打开
O_RDWR 读、写打开

flag参数:可选项

O_APPEND 每次写时追加到文件的末尾
O_CREAT 若此文件不存在则创建它
O_EXCL 创建文件时检测文件是否存在,必须与O_CREAT一起使用
O_TRUNC 如果文件存在,而且只写或读写打开成功打开,则将其长度阶段为0

mode参数:mode &~ umask

测试代码:

#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<stdio.h>int main(int argc, const char *argv[])
{int fd = open("hello", O_RDWR | O_CREAT, 0777);if(fd == -1) {printf("打开失败\n");}close(fd);return 0;
}

输出结果:

文件描述符、函数open和openat相关推荐

  1. Select()系统调用及文件描述符集fd_set的应用

    在网络程序中,一个进程同时处理多个文件描述符是很常见的情况.select()系统调用可以使进程检测同时等待的多个I/O设备,当没有设备准备好时,select()阻塞,其中任一设备准备好时,select ...

  2. 020303阶段三 I/O复用 select和epoll的文件描述符管理

    目录 一.学习的知识点 1 五种 I/O 1.1 阻塞式I/O 1.2 非阻塞式I/O 1.3 I/O复用(select 和pool) 1.3.1 select 文件描述符的管理 select 缺点 ...

  3. 网络编程(part5)--文件读写偏移量及文件描述符

    鄙人学习笔记 文章目录 文件读写偏移量(文件指针) 定义 举个例子1(读写操作的文件偏移量) 举个例子2(文件偏移量的初始位置验证) 基本操作 举个例子1(tell()函数) 举个例子2(tell() ...

  4. android绑定文件描述符,认识安卓的文件描述符FileDescriptor

    理解文件描述符 文件描述符(FileDescriptor) 这是Unix/Linux系统文件操作的相关概念,Android也属于Linux操作系统.因此理解Linux下的文件描述符也就明白安卓下文件描 ...

  5. linux fcntl 函数 文件描述符选项控制

    功能描述:根据文件描述词来操作文件的特性. #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd); ...

  6. C语言socket accept()函数(提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符)

    文章目录 名称 使用格式 功能参数描述 参数 sockfd addr addrlen 返回值 示例 man 2 文档中的accept解释 错误处理 名称 accept() 接收一个套接字中已建立的连接 ...

  7. linux系统调用函数(C语言):open,close函数和文件描述符

    文件描述符 系统调用中操作IO的函数,都是针对文件描述符的 通过文件描述符可以直接对相应的文件进行操作 如:open,close,write,read,ioctl等 文件IO与标准IO的权限对比 op ...

  8. 管道实现父子进程的信息传递(二)【标准流和其文件描述符、fwrite函数、perror函数】

    文章目录 代码实现 标准流 和 标准流文件描述符 代码中用到的函数 fwrite() perror() 在复习进程间的通信方式时又写了一遍,和 管道实现父子进程的信息传递(一)[fork函数.pipe ...

  9. Linux:dup/dup2 文件描述符重定向函数(有图有代码有真相!!!)

    一.dup/dup2 有时我们希望把标准输入重定向到一个文件,或者把标准输出重定向到一个网络连接.系统调用dup和dup2能够复制文件描述符.dup返回新的文件文件描述符(没有用的文件描述符最小的编号 ...

最新文章

  1. 《当程序员的那些狗日日子》(五)工作中,工作外
  2. iPhoneUI元素的大小
  3. python爬取网页时返回http状态码HTTP Error 418以及如何查看自己的User-Agent
  4. 搭建一个tomcat的JSP服务器环境
  5. win10 下mysql环境变量配置
  6. 信杂比公式_信噪比怎么计算
  7. Python学习第一课-----绘制股票分时图
  8. 如何在MAC上查看系统运行信息、内存使用率等
  9. 世界各国首都经纬度-json
  10. 下载想看的英文kindle 电子书
  11. 求水洼的问题——深度优先算法
  12. 区块链概念及简单介绍
  13. Java Excel 复制单元格 poi Excel 复制单元格 Java Excel 复制行 Java Excel 复制 sheet 页 poi excel copy
  14. 公开课|“技术+法律”隐私计算如何助力数据合规
  15. linux终端安装playonlinux,安装PlayOnLinux - 手把手教您如何在Linux上安装《暗黑3》_Linux新闻_Linux公社-Linux系统门户网站...
  16. 100个标题模板,让你分分钟写出10万+爆文!
  17. STM32F4学习笔记1
  18. 黑苹果系统是服务器系统,黑苹果是什么系统(深入解读黑苹果系统)
  19. H5项目适配系统深色模式方案总结
  20. 苍穹 WebOffice小科普,轻松助力在线Office办公

热门文章

  1. iframe高度自适应,终于解决了
  2. silverligh的数据访问
  3. C#反射Assembly 具体说明
  4. 白话经典算法系列之中的一个 冒泡排序的三种实现
  5. SharePoint2013安装组件时AppFabric时出现1603错误,解决方法:
  6. 使用delphi 开发多层应用(十)安全访问服务器
  7. 缓存应用--Memcached分布式缓存简介(二)
  8. html输入完账号密码才能跳转,HTML输入字段跳转
  9. oppo 手机侧滑快捷菜单_OPPO刚秀出卷轴屏手机,就被打了一记响亮的“耳光”
  10. centos 重启网卡_CentOS6 网络管理之网卡配置及简单路由设置