首页 > 系统相关 >Linux开发:dup, dup2, dup3

Linux开发:dup, dup2, dup3

时间:2024-03-25 22:31:05浏览次数:17  
标签:文件 打开 dup3 dup2 描述符 Linux dup include

Linux开发:open打开文件-CSDN博客

Linux开发:多进程通过open同时读取文件-CSDN博客

介绍了打开一个文件会获得一个文件描述符,该文件描述符指向内核中打开文件的描述表的一个位置,而该位置记录了当前打开文件的一些信息

dup系列api的主要用途是为指定的文件描述符复制/指定一个新的描述符,使得新旧文件描述符指向内核中打开文件的描述表的同一个位置。因此新旧文件描述符会共享当前文件偏移量。

1.dup

#include <unistd.h>
int dup(int oldfd);

参数说明:
    oldfd:旧的文件描述符

返回值:
    如果失败返回-1,如果复制成功,返回一个新的文件描述符,新的文件描述符将使用最小的可用文件描述符

新旧文件描述符共享offset:

#include <unistd.h>
#include <iostream>
#include <fcntl.h>
using namespace std;

void doDu

标签:文件,打开,dup3,dup2,描述符,Linux,dup,include
From: https://blog.csdn.net/jiemashizhen/article/details/136987129

相关文章

  • 猫头虎分享已解决Bug | org.springframework.dao.DuplicateKeyException异常的正确解
    博主猫头虎的技术世界......
  • Python脚本给数据库插入数据报错: raise errorclass(errno, errval) pymysql.err.Integ
    一、问题描述在SQL客户端插入数据时执行SQL语句INSERTINTOuser_xxx(id,uid,total,balance,wallet_type,ctime,utime)VALUES(0,'336448391',271,89000098,'coin',1708588247,1709007766);可以成功执行没报错;使用python脚本执行SQL语句INSERTINTOuser_xxx......
  • 文件IO-strdup
    示例#include<stdio.h>#include<string.h>#include<stdio.h>#include<errno.h>#include<fcntl.h>#include<unistd.h>#include<stdlib.h>#include<stdbool.h>#include<stdint.h>#include<string.h......
  • 两个Mysql唯一索引的交换: 避免重复索引 Duplicate entry '3' for key 'priority_UNIQ
    需求我做了一个排行榜,但是主键是pid,不是排名,排名作为唯一索引,两个人排名交换,只需要交换排名唯一索引值即可.但是直接单独更新提示错误:Duplicateentry'3'forkey'priority_UNIQUE'方法本来希望可以在一条SQL语句中交换两个唯一索引值,但是发现这是不可能的,因为值......
  • mysql报错:Duplicate entry ‘...‘ for key ‘field‘
    错误信息"Duplicateentry'...'forkey'field'"表示在数据库表中,你正在尝试插入一条数据的'number'字段的值已经存在。这通常是由于你设置了'field'字段为唯一键(UNIQUEKEY),而你又尝试插入一个已存在的值。解决这个问题的方法有以下几种:检查输入的数据:确保你插入的数据在该字段......
  • mysql 报错 Duplicate entry ‘xxx‘ for key ‘字段名‘
    有时候对表进行操作,例如加唯一键,或者插入数据(已经有唯一键),会报错Duplicateentry...forkey...原因是primarykey(主键)或uniquekey(唯一键)的值重复。还有索引也会导致。碰到这种情况,考虑是否需要主键或唯一键的约束,如果不需要,就直接删除约束。在navicat上有√可以选。命令行如下删除......
  • win10安装git fatal: open /dev/null or dup failed: No such file or directory错误
    https://files.cnblogs.com/files/netlock/null.zip?t=1703226893&download=true文件地址解决方法:1.C:\Windows\System32\drivers\null.sys这个文件损坏,可以从网上下载win7、win10对应的null.sys文件,然后进行替换。由于我是win10的电脑,提供链接。百度网盘链接:https://pan.baid......
  • duplicate克隆数据库脚本例子
      建议目的端执行(源端也可以执行)rmantargetsys/oracle@tnsora11g_sourceauxiliarysys/oracle@tnsora11g_target  run{allocatechannelprmy1typedisk;allocatechannelprmy2typedisk;allocatechannelprmy3typedisk;allocateauxiliarychannels......
  • sqlalchemy 实现 mysql INSERT INTO...ON DUPLICATE KEY UPDATE语法
    1.前言myql的INSERTINTO...ONDUPLICATEKEYUPDATE语句,简单点来说,就是如果记录不存在,则插入,如果记录存在,则更新。那怎么判断记录存在否?——主键、唯一键。那不是可以使用replace语句吗?——原理上可以,但是sqlalchemyorm中的的实现,是使用merge语法,这个语法有一个限制,就是判......
  • Mysql: [HY000][1093] You can't specify target table 'dupes' for update in FROM c
    错误原因在同一语句中。不能先SELECT出同一表的某些值,在Update这个表实例错误实例DELETEFROMdupesWHEREidNOTIN(SELECTMIN(id)FROMdupesGROUPBYname)正确实例DELETEFROMdupesWHEREidNOTIN(SELECT*FROM(SELECTM......