dup函数复制oldfd描述符给一个新的描述符,即这个新的文件描述符指向oldfd所拥有的文件表项。这个新的描述符是未被使用的最小的描述符,dup函数返回这个描述符dup2函数和dup函数类似,它们的区别就是dup2可以用newfd参数指定新的描述符,如果newfd描述符已经打开,则覆盖;如果newfd等于oldfd,则dup2直接返回newfd.这两个函数返回的新文件描述符和参数oldfd描述符
原创 2016-05-25 23:04:28
954阅读
dupdup2用于复制一个现存的文件描述符,当调用dup函数成功后,内核在进程中创建一个新的文件描述符,此描述符是当前可用文件描述符的最小数值。dup2可以用nwefd参数指定新描述符的数值,如果newfd当前已经打开,则先将其关闭在做dup2操作,如果oldfd等于newfd,则dup2直接返回newfd而不用户先关闭newfd再复制。   1 #in
dup
原创 2016-05-23 19:27:03
1037阅读
dup/dup2: 对输入文件描述符重定向dup#include<stdio.h>#include<unistd.h>#include<fcntl.h>#include<string.h>int main(){ int fd=open("./log",O_CREAT|O_WRONLY,0644); if(fd<0){&nbs
原创 2016-07-30 18:34:55
441阅读
   dupdup2dup3是linux下非常重要的函数,用来实现流的重定向,可以很方便实现一些很有趣的效果。   原理:每个进程在内核中有相应的fd记录表,每个fd占用一项。调用dup()后,新产生的newfd与原oldfd指向同一内核文件表项,操作newfd与操作oldfd效果一样,比较常用的应用就是CGI编程。    
原创 2022-12-15 14:09:41
428阅读
dupdup2 是 Linux 系统调用,用于复制文件描述符。dup 系统调用将给定的文件描述符复制,并返回新的文件描述符。语法为:int dup(int oldfd);dup 复制 oldfd 文件描述符,并返回新的文件描述符。新的文件描述符与 oldfd 具有相同的读写权限和偏移量。dup2 系统调用也复制文件描述符,但是它允许你指定新文件的文件描述符。语法为:int dup2(int
原创 2023-05-15 16:52:03
205阅读
pipe和popen可以帮助我们实现类似shell下面的,如 cat file | cksum | echo 等管道操作。 下面是例子: 1. 运行cksum p_w_picpathname,得到其输出进行处理 static bool check_p_w_picpath(char * p_w_picpathname, char * crc, char * len) {  &nb
原创 2010-10-20 09:20:53
1020阅读
下面两个函数都可用来复制一个现存的文件描述符:#includeint dup(int filedes);int dup2(int filedes,int filedes2); ...
转载 2015-02-06 11:33:00
393阅读
2评论
转载 2015-09-14 14:43:00
286阅读
2评论
1. 文件描述符在内核中数据结构 在具体说dup/dup2之前, 我认为有必要先了解一下文件描述符在内核中的形态。一个进程在此存在期间,会有一些文件被打开,从而会返回一些文件描述符,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2), 0与进程的标准输入相关联,1与进程的标准输出相关联,2与进程的标准错误输出相关联,一个进程当前有哪些打开的文件描述符可以通过/proc/进程ID/fd目录查看。 下图可以清楚的说明问题: 进程表项———————————————— fd标志 文件指针 _____________________fd 0:|________|_______...
原创 2022-01-04 16:22:45
308阅读
dupdup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的File Status&nbs
原创 2012-11-02 16:51:04
3520阅读
1. 文件描述符在内核中数据结构     在具体说dup/dup2之前, 我认为有必要先了解一下文件描述符在内核中的形态。一个进程在此存在期间,会有一些文件被打开,从而会返回一些文件描述符,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2), 0与进程的标准输入相关联,1与进程的标准输出相关联,2与进程的标准错误输出相关联,一个进程当前有哪些打开的文件描述符可
dup
转载 精选 2014-02-22 15:27:33
543阅读
dup函数和dup2函数
原创 2016-05-22 21:20:20
1760阅读
dupdup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stde
转载 2023-05-24 02:24:55
181阅读
<br />dup函数的作用:复制一个现有的句柄,产生一个与“源句柄特性”完全一样的新句柄(也即生成一个新的句柄号,并关联到同一个设备)<br />dup2函数的作用:复制一个现有的句柄到另一个句柄上,目标句柄的特性与“源句柄特性”完全一样
转载 2021-08-19 17:22:18
1055阅读
在linux下,通过open打开以文件后,会返回一个文件描述符,文件描述符会指向一个文件表,文件表中的节点指针会指向节点表。看下图:dupdup2两个函数都可以用来复制打开的文件描述符,复制成功后和复制源共享同一个文件表:dup()函数:#include#includeint main(int argc, char *argc[]){  int ...
原创 2022-11-16 11:30:59
95阅读
函数原型:#includeint dup(int oldfd);int dup2(int oldfd,int newfd);dup用来复制oldfd所指的文件描述符。但复制成功时返回最小的尚未被使用的文件描述符。若有错误则返回-1,错误代码存入errno中。返回的新文件描述符和参数oldfd指向同一个文件,共享所有的锁定,读写指针,和各项权限或标志位。1.打开一个新文件2.关掉标准输出文件符3.调
dup
原创 2016-05-21 15:50:50
2209阅读
dupdup2 的作用dupdup2也是两个非常有用的调用,它们的作用都
转载 2022-09-30 10:30:41
736阅读
dupdup2 返回值是int的文件描述符,参数是已有的文件描述符 此时打印的文件描述符为4,使用这个文件描述符可以访问
原创 2022-07-02 00:05:44
80阅读
将当前系统中的进程信息打印到文件中 命令行:ps aux > out 将ps得到的信息重定向到out文件中 使用dup2文件在程序中完成。 运行结果: ubuntu1604@ubuntu:~/wangqinghe/linux/20190806$ ls -l ps.out -rw-r--r-- 1 u
转载 2019-08-06 20:56:00
223阅读
2评论
今天看APUE上一道题,要求不能用fcnt1来替换dup1.刚开始的思路是dup一个,测试发现与期望的不一致就马上关闭,发现遇到无限循环,刚才想了下,才发现一旦close掉,再次dup仍然是分配最小的fd,所以永远也得不到最终的结果。囧!好吧,依据网友的,自己整理了下:#include #include #include #include #include #include #include #include #include #include #define err_sys(info) ...
转载 2013-09-25 22:03:00
132阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5