问题标签 [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 - fopen + 流 _dup 中的流描述符丢失
我有以下代码示例(在 Windows 中):
我需要 fd 的值以备将来使用。如何在不丢失fd
值的情况下从文件中读取?
c - 有人可以解释 C 中的 dup() 做什么吗?
我知道 dup, dup2, dup3 “创建文件描述符 oldfd 的副本”(来自手册页)。然而我无法消化它。
据我所知,文件描述符只是跟踪文件位置及其方向(输入/输出)的数字。这不是更容易吗
每当我们想要复制文件描述符时?
还有别的..
dup() 为新描述符使用编号最小的未使用描述符。
这是否意味着如果我们假设我们有close() -ed 其中之一,它也可以作为值stdin、stdout或stderr ?
c - dup2 到文件的套接字
大家,冬天来了,请注意保暖,保持健康。在思考工作的过程中,我对 fd dup2 的功能提出了一些问题。我创建了一个套接字服务器和一个客户端。服务器发送,客户端接收数据。但是现在我想将服务器套接字 fd 复制到文件 df 中,以便让客户端直接从位于服务器中的文件中读取数据。我写喜欢
但是,它不起作用,这可能吗?你能给我什么建议吗?谢谢
c - 将 STDOUT 和 STDERR 重定向到 C 中的套接字?
我正在尝试将 STDOUT 和 STDERR 重定向到套接字。
我做了:
不知何故,它只显示了输出的前一小部分。
例如,当我尝试执行 ls 或 mkdir 时,它显示在“mkdir”上。
有什么问题?
我尝试了以下方法,但我只能重定向 STDOUT 或 STDERR 之一
非常感谢。
c - 为什么 close() 系统调用刷新输出?
这是我的代码:
我实际上想要做的只是使用 printf() 而不是 write() 系统调用将“堆栈溢出”打印到文件中。
它没有将内容打印到文件中。但我观察到的一件事是,如果我删除代码:
它按预期将内容打印到文件中。但我不明白为什么。我打印了内容,然后只有我关闭了 newfd。
这是什么原因?
ruby - 'dup' 后仍引用实例变量
我有一个类的对象,我想用dup
. 其中一个实例变量是一个数组,它似乎正在引用它。我以为 dup 实际上创建了一个 DUPLICATE。
这是我的 IRB 会议:
我希望a
保持不变,因为dup
创建了一个全新的变量,而不是引用。
另请注意,如果您要替换[1,2,3]
为 in 中的标量G::initialize
,dup
则不会引用它。
ruby - Ruby dup/clone 递归
我有一个像这样的哈希:
我需要这个哈希的副本,更改不应该影响原始哈希。
当我尝试时,
在这里您可以看到project['duration']
原始哈希中的 已更改,因为project
是另一个哈希对象。
我希望哈希是duped
或cloned
递归的。我怎样才能做到这一点?
c - 在 C 中重定向标准输出时的奇怪行为
我正在尝试将标准输出重定向到一个文件,然后将其恢复为 C 中的原始文件,但我面临以下奇怪的问题 - 以下代码成功
in stdout
in stdout
地写入标准输出和in file
相应的文件中,这一切都可以。
但是,删除我的主要功能的第一行:
导致
in file
in stdout
被写入标准输出并且文件中没有写入任何内容。我想知道这是怎么发生的?谢谢你的帮助。
python - 从 python 重定向标准输出以进行 C 调用
从 python 模块中,我调用了一个简单地打印到标准输出的Hello World可执行文件。Hello World
我有兴趣将该输出重定向到 pythonStringIO
并遇到这个答案,这几乎把我带到了解决方案。
这个答案的关键部分是这个代码段:
我也想恢复重定向之前的标准输出。
问题
- 上面的函数到底发生了什么?
- 什么是
dup
和dup2
做什么? - 是什么
/dev/null
? - 8号线在做什么?(
sys.stdout = os.fdopen(newstdout, 'w')
)
- 什么是
- 如何将标准输出存储在
StringIO
对象中? - 调用Hello World程序后如何恢复标准输出?
我很确定,一旦我得到问题 1 的答案,问题 2 和 3 的答案就会很容易。无论如何,我决定发布它们,以便将问题 1 的答案推向我想去的方向。
python - python中的dup、dup2、tmpfile和stdout
这是here的后续问题。
我想去的地方
我希望能够暂时将标准输出重定向到一个临时文件,而 python 仍然能够打印到标准输出。这将涉及以下步骤:
- 创建 stdout (
new
)的副本 - 创建临时文件 (
tmp
) - 将标准输出重定向到
tmp
- 告诉 python
new
用作标准输出 - 重定向
tmp
到“真正的”标准输出 - 告诉 python 再次使用“真正的”标准输出
- 阅读并关闭
tmp
执行
我尝试通过以下方式实现上述内容:
我想在这里休息一下来总结一下。
直到此处的控制台输出应为:
而sil
应该是这样的:['0.3\n']
. 所以直到这里,一切都像魅力一样运作。但是,如果我像这样再次重做上面的脚本:
发生错误,输出如下所示:
而sil
读取:['0.3\n', '']
。
换句话说:第二个Func("1.3", True)
无法写入临时文件。
问题
- 首先,我想知道为什么我的脚本不能像我希望的那样工作。意思是,为什么只能在脚本的前半部分写入临时文件?
- 我对 and 的用法还是有点
dup
疑惑dup2
。虽然我认为我了解将标准输出重定向到临时文件的工作原理,但我现在完全知道为什么os.dup2(new, 1)
要做它正在做的事情。也许答案可以详细说明我的脚本中的所有dup
和dup2
s 在做什么^^