首页 > 其他分享 >C语言--unistd.h

C语言--unistd.h

时间:2023-01-04 17:24:11浏览次数:42  
标签:文件 -- unistd C语言 int 描述符 复制 newfd

在此随手记录一些unistd.h文件中的函数

dup

声明:int dup(int oldfd)
功能:复制文件描述符,重定向输入输出
返回值:成功返回当前系统可用的最小整数值,否则返回-1

dup2

声明:int dup2(int oldfd, int newfd)
功能:复制文件描述符,重定向输入输出
返回值:返回一个不小于newfd的整数值,分两种情况:

  • 如果newfd已经打开,则先将其关闭,在复制文件描述符;
  • 如果newfd等于oldfd,则返回newfd,而不关闭它;

复制文件描述符之后,新旧文件描述符的特点

  1. 使用dup或dup2复制文件描述符后,新文件描述符和旧文件描述符指向同一个文件,管道或网络连接,共享文件的锁定、读写位置和各项权限。
  2. 当关闭新的文件描述符时,通过旧文件描述符可操作文件。
  3. 当关闭旧的文件描述符时,通过新文件描述符可操作文件。

注意:新旧文件描述符是共享文件偏移量和文件状态标志的,也就是说如果其中一个文件描述符使用了seek修改文件偏移量,那么另外一个也会改变。

标签:文件,--,unistd,C语言,int,描述符,复制,newfd
From: https://www.cnblogs.com/liyugui/p/17025465.html

相关文章

  • 【抽奖系统】2.数据表创建
    数据表的创建用户表CREATETABLE`bld_lucky_user`(`id`bigintNOTNULL,`username`varchar(50)CHARACTERSETutf8mb4COLLATEutf8mb4_german2_ciNOTNULL......
  • sql更换表结构
    案列--查看表结构SELECTHG_DUMP_SCRIPT('public.test');--创建新的结构表CREATETABLEpublic.test(nametextNOTNULL,commitstext,PRIMARYKE......
  • antv G6 脑图设计
    首先是要安装antvG6插件安装命令:npminstall--save@antv/g6 Vue页面开发:<template><divid="container"></div></template><scriptlang="tsx"setup>......
  • 贝祖定理
    引入:1.背景:在数论中,裴蜀定理是一个关于最大公约数(或最大公约数)的定理,是法国数学家Bézout'sLemma,又称贝祖定理。2.(1) Z={...-3,-2,-1,0,1,2,3...}  (2) 2Z={...-6,-4,-......
  • 第03章 用户与权限管理
    第03章用户与权限管理1.用户管理1.1登录MySQL服务器启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下:mysql–hhostname|hostIP–Pport–uusername......
  • day53 -数据库表的创建,修改与删除,数据表的类型
    创建数据库表 --AUTO_INCREMENT自增--字符串使用单引号括起来--PRIMARYKEY主键,一般一个表只有一个唯一的主键CREATETABLEIFNOTEXISTS`student`(......
  • FreeSWITCH学习笔记18 - Event Socket
    目录:   18.1、架构18.1.1、外连模式 18.1.2、内连模式 18.2、EventSocket协议18.2.1、外连                       ......
  • FreeSWITCH学习笔记10 - 基本技能
    目录:    10.1、调试与排错 10.2、使用外部工具抓包          10.3、使用Wireshark抓包并分析呼叫具体参考10.310.4、originate命令实例解析......
  • K8S运维必知必会的 Kubectl 命令总结【转】
    kubectl常用命令指南Kubectl命令是操作kubernetes集群的最直接的方式,特别是运维人员,需要对这些命令有一个详细的掌握Kubectl自动补全#setupautocompleteinbash......
  • CSS - 块元素,行内元素,行内块元素与显示模式的转换
    1.块元素div,p,h1,ol,ul,dl,tabel,form块元素的特点:1.独占一行2.宽度高度内外边距都可以控制3.宽度默认是容器(父级容器)的100%4.里面可以放块元素,行内元素,行内块元素5......