原文:linux c——dup( )和dup2( )函数详解(转)

dup 函数和dup 函数书上在文件操作那一章,已经讲过了,这周看重定向这块,发现它挺重要,就再看了回,记录下。 dup函数头文件及函数定义: dup用来复制参数oldfd所指的文件描述符。当复制成功是,返回最小的尚未被使用过的文件描述符,若有错误则返回 .错误代码存入errno中返回的新文件描述符和参数oldfd指向同一个文件,这两个描述符共享同一个数据结构,共享所有的锁定,读写指针和各项全现或 ...

2019-06-03 08:26 0 1049 推荐指数:

查看详情

关于dupdup2函数

  首先dupdup2函数是用于复制文件描述符的。他们俩的头文件是#include<unistd.h>   先说一下dup函数函数定义 int dup(fd) fd是一个某一个打开的文件的描述符,它的返回值是当前进程可用的最小的文件描述符,同时这个文件描述符和fd同时文件表中 ...

Mon Aug 19 23:16:00 CST 2019 0 760
dupdup2函数

下面两个函数都可用来复制一个现存的文件描述符: #include<unistd.h> int dup(int filedes); int dup2(int filedes,int filedes2); ...

Fri Feb 06 19:33:00 CST 2015 0 2525
linuxdupdup2函数解析

1. 文件描述符在内核中数据结构在具体说dup/dup2之前,我认为有必要先了解一下文件描述符在内核中的形态。一个进程在此存在期间,会有一些文件被打开,从而会返回一些文件描述符,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2), 0与进程的标准输入相关联,1与进程的标准输出 ...

Sat Aug 12 09:20:00 CST 2017 0 8302
linux中pipe和dup2详解

1、什么是管道   管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程); 单独构成一种独立的文件系统:管道对于管道两 ...

Tue Dec 01 00:13:00 CST 2015 0 3244
Linux内核分析:dupdup2的实现

一、首先需要看一下这两个函数的作用: 根据manual的解释: dup:创建一份oldfd的拷贝,使用最小的文件描述符作为新的文件描述符。 dup2:创建一份oldfd的拷贝,使用指定的newfd作为新的文件描述符。 要看这两个函数是怎么实现的,首先得知道Linux对于文件 ...

Sat Jan 07 17:12:00 CST 2017 0 1542
详解linux进程间通信-管道 popen函数 dup2函数

  前言:进程之间交换信息的唯一方法是经由f o r k或e x e c传送打开文件,或通过文件系统。本章将说明进程之间相互通信的其他技术—I P C(InterProcess Communication)。今天将介绍半双工的管道。   一、匿名管道   1、匿名管道介绍:    管道有两种 ...

Thu Apr 26 23:16:00 CST 2018 0 870
进程间通信管道进阶篇:linuxdup/dup2函数的用法

由于利用管道实现进程间通信,是通过创建两个文件描述符,但是描述符的初始化是通过随机的,就是从可用的文件描述符中取出,并将可用的文件描述符与file对象相关联,如果我们需要将管道的两头与其他的流相关时,就需要重定向操作,重定向fd[0]和fd[1]的file,下面是关于实现重定向的函数dup ...

Sun Jan 06 00:37:00 CST 2013 1 9206
dupdup2用法小结

今天和同学探讨了一下关于重定向输出到文件的问题,其中需要用到dupdup2函数,因此来小小的总结一下。 首先来man一下: dup直接返回一个新的描述符和原来的描述符一样代表同一个资源,描述符的值就从当前未使用的最小的描述符来取。 而dup2则是可以指定描述符的值,这样通过把文件的描述符 ...

Wed Sep 07 08:20:00 CST 2016 0 2165
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM