问题标签 [dup]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - dup 不重定向
我正在编写代码以将标准输出重定向到文件(例如将 ls 返回到文件的结果),并且 dup2() 函数不会重定向我的输出。这是我拥有的代码:
这不起作用。我只是将 ls 的输出输出到我的终端窗口。我已采取措施检查 dup2() 确实返回 1,而不是 -1。
c - 使用管道的 sed 命令导致无限循环
所以我正在尝试使用管道来 cat 一个文件并将 sed 放入一个名为 newfile.txt 的文件中。目前 cat 命令可以使用 execvp,但是它正在输出到命令显示上。然后程序在执行 sed 命令时进入无限循环。
显然我在这里挣扎。谁能指出我做错了什么和/或指出我如何做到这一点的良好信息来源?
谢谢!
c - fork、pipe exec 和 dub2
这段代码应该打印“'ls -l'的输出:”并附加'ls -l'的结果,但它没有......有人知道这有什么问题吗?
c - Why fork() close one of the file descriptor by dup2()
I wrote code to get sense of dup2().
the lsof shows 2 opened file descriptors (/workspace/source/throw.cpp is the arguements passed in)
BUT, while I fork() it to 2 processes(code as below), there's only one /workspace/source/throw.cpp opened.
- Question1: What caused the dup()d fd being closed?
- Question2: I looked into FD_CLOEXEC in manual, but don't set it by fcntl(). Does fopen() set it automatically? and does this flag impact on not only fork but exec families?
Question3: After I replaced dup2 by dup, the result shows 2 fds as my expectation. as manual said:
"dup2() makes newfd be the copy of oldfd, closing newfd first if necessary".
Does it mean close newfd before dup, if the newfd is opened already?
c - 通过套接字流式传输 execvp 输出
我知道这个问题已经被问了十亿次,但是所有的解决方案都对我不起作用。我需要通过套接字将一个流式传输到客户端stdout
。execvp
相关的客户代码是这样的
我试图复制这个问题的答案。但是,当我尝试这段代码时,我什么也没得到:
我三次检查连接是否正确建立。当我execute_cmd
用 simple替换时write
,客户端会正确打印答案。但是当我执行上面的代码时没有任何反应,我没有得到任何字节。我已删除dup2
呼叫,但没有得到任何输出execvp
。
在这里变得非常绝望,尝试了pipe
我能找到的任何东西。我哪里做错了?该命令本身也可以,可以在 shell 上运行,并且execvp
调用不会引发错误。
linux-kernel - 真正的文件描述符克隆
为什么尽可能没有真正的文件描述符克隆机制,就像磁盘文件一样。
POSIX:
从这些系统调用之一成功返回后,新旧文件描述符可以互换使用。它们引用相同的打开文件描述(参见 open(2)),因此共享文件偏移量和文件状态标志;例如,如果在其中一个描述符上使用 lseek(2) 修改了文件偏移量,则另一个描述符的偏移量也会改变。
视窗:
复制句柄指的是与原始句柄相同的对象。因此,对对象的任何更改都会通过两个句柄反映出来。例如,如果您复制一个文件句柄,则两个句柄的当前文件位置始终相同。对于具有不同文件位置的文件句柄,请使用 CreateFile 函数创建共享对同一文件的访问权限的文件句柄。
使用克隆原语的原因:
操作文件存档时,我希望存档中的每个文件都必须可以独立访问。文件存档的行为应该有点像虚拟文件系统。
文件类型检查。能够克隆文件偏移量可以在不影响原始位置的情况下读取文件的一小部分。
c - 使用一系列命令进行管道传输
我有一个函数,它接受一个字符串数组和数组的大小。我有一个循环将字符串标记为命令和争论,然后一一分叉并执行命令。对于每个命令,我需要将输出通过管道传输到下一个命令输入。我不完全确定我的重复/关闭电话是否正确。任何帮助,将不胜感激。如果数组中只有一个命令,我将其设置为不管道。
c - dup3的工作
在阅读 dup3 系统调用时,我知道它只会更改重复文件描述符的 O_CLOEXEC 标志。但是当我为所有 3 个输出编写下面的程序时,它打印的标志要么存在,要么不存在,它基于打开时是否在原始文件描述符中指定了 O_CLOEXEC。怎么了 ?我真的不明白。
还有我的 GNU C 库版本:
ruby - Ruby 对象 ID、dup 和可变性
我在Ruby中遇到了以下问题
所以我对这个有点了解。a
在 .处保存对数组的引用object_id
。
b
也有对相同位置的引用作为b
指向a
它的点object_id
。基本上它们指的是同一件事。因此,如果我对 , 的某些东西进行变异b
,a
也会发生变异。
这种行为属于哪一类?是否有任何我可以记住的读数/一般做法,所以我将来不会有任何涉及此的错误?我知道这a.dup
会在不同的位置提供一个新对象,所以a.dup == b
会true
。也为a.dup.object_id == b.object_id
.
此外,在这种情况下,无论浅还是深dup
,clone
本质上是一样的吗?
c - c dup 未定义的错误
我正在尝试创建两个子进程:
一个孩子从作为参数传入的文件中读取其输入,并将输出写入管道。
另一个孩子从管道读取其输出并将其输出写入文件,也作为参数传入。
父级为子级设置一些文件描述符,当子级创建时,他们完成对描述符的操作以满足他们的需要。
但是,我在设置文件描述符时遇到了问题,特别是当我尝试关闭并复制输入文件描述符以代替标准输入时。
这是我的所有代码:
我正在MINIX3上编译和运行它。
这是我运行它的方式,包括程序输出:
任何帮助是极大的赞赏。